about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/clasp/default.nix39
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix29
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix30
-rw-r--r--pkgs/development/compilers/gcc/5/default.nix17
-rw-r--r--pkgs/development/compilers/gcc/6/default.nix27
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix15
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix15
-rw-r--r--pkgs/development/compilers/gcc/snapshot/default.nix15
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.4.4.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.6.1.nix2
-rw-r--r--pkgs/development/compilers/ghc/8.6.2.nix2
-rw-r--r--pkgs/development/compilers/ghc/head.nix2
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/5/llvm.nix4
-rw-r--r--pkgs/development/compilers/openjdk/8.nix20
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix11
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix8
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix2
-rw-r--r--pkgs/development/interpreters/groovy/default.nix4
-rw-r--r--pkgs/development/interpreters/jruby/default.nix4
-rw-r--r--pkgs/development/interpreters/python/cpython/2.7/default.nix6
-rw-r--r--pkgs/development/interpreters/python/cpython/3.6/default.nix4
-rw-r--r--pkgs/development/interpreters/python/cpython/3.7/default.nix4
-rw-r--r--pkgs/development/libraries/aubio/default.nix10
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix10
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix10
-rw-r--r--pkgs/development/libraries/audio/lv2/unstable.nix10
-rw-r--r--pkgs/development/libraries/audio/lvtk/default.nix17
-rw-r--r--pkgs/development/libraries/audio/ntk/default.nix13
-rw-r--r--pkgs/development/libraries/audio/raul/default.nix10
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix10
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix9
-rw-r--r--pkgs/development/libraries/boehm-gc/default.nix4
-rw-r--r--pkgs/development/libraries/c-ares/default.nix15
-rw-r--r--pkgs/development/libraries/cairo/default.nix4
-rw-r--r--pkgs/development/libraries/eccodes/default.nix4
-rw-r--r--pkgs/development/libraries/fmt/default.nix9
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/ganv/default.nix10
-rw-r--r--pkgs/development/libraries/glib/setup-hook.sh2
-rw-r--r--pkgs/development/libraries/glibc/common.nix4
-rw-r--r--pkgs/development/libraries/granite/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix8
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix8
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/validate/default.nix4
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--pkgs/development/libraries/isl/0.12.2.nix21
-rw-r--r--pkgs/development/libraries/isl/0.20.0.nix (renamed from pkgs/development/libraries/isl/0.15.0.nix)6
-rw-r--r--pkgs/development/libraries/java/jflex/default.nix22
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix7
-rw-r--r--pkgs/development/libraries/libgcrypt/fix-jent-locking.patch29
-rw-r--r--pkgs/development/libraries/librealsense/default.nix4
-rw-r--r--pkgs/development/libraries/libssh/default.nix16
-rw-r--r--pkgs/development/libraries/libversion/default.nix4
-rw-r--r--pkgs/development/libraries/libwacom/default.nix14
-rw-r--r--pkgs/development/libraries/mapnik/default.nix63
-rw-r--r--pkgs/development/libraries/mesa/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/disk_cache-include-dri-driver-path-in-cache-key.patch20
-rw-r--r--pkgs/development/libraries/movit/default.nix12
-rw-r--r--pkgs/development/libraries/ndn-cxx/default.nix24
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix6
-rw-r--r--pkgs/development/libraries/nghttp2/fix-stream-operator.patch63
-rw-r--r--pkgs/development/libraries/ntl/default.nix4
-rw-r--r--pkgs/development/libraries/poker-eval/default.nix24
-rw-r--r--pkgs/development/libraries/protozero/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix9
-rw-r--r--pkgs/development/libraries/science/networking/ns3/default.nix14
-rw-r--r--pkgs/development/libraries/serd/default.nix10
-rw-r--r--pkgs/development/libraries/serf/default.nix28
-rw-r--r--pkgs/development/libraries/sord/default.nix10
-rw-r--r--pkgs/development/libraries/speex/default.nix4
-rw-r--r--pkgs/development/libraries/swiften/default.nix22
-rw-r--r--pkgs/development/libraries/termbox/default.nix8
-rw-r--r--pkgs/development/node-packages/default-v10.nix4
-rw-r--r--pkgs/development/python-modules/Cython/default.nix6
-rw-r--r--pkgs/development/python-modules/aioeventlet/default.nix35
-rw-r--r--pkgs/development/python-modules/argh/default.nix33
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix12
-rw-r--r--pkgs/development/python-modules/basemap/default.nix43
-rw-r--r--pkgs/development/python-modules/blessings/default.nix25
-rw-r--r--pkgs/development/python-modules/blist/default.nix23
-rw-r--r--pkgs/development/python-modules/bootstrapped-pip/default.nix4
-rw-r--r--pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--pkgs/development/python-modules/cffi/default.nix2
-rw-r--r--pkgs/development/python-modules/cliapp/default.nix31
-rw-r--r--pkgs/development/python-modules/clint/default.nix39
-rw-r--r--pkgs/development/python-modules/clize/default.nix26
-rw-r--r--pkgs/development/python-modules/cmdtest/default.nix32
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/cvxopt/default.nix14
-rw-r--r--pkgs/development/python-modules/daemonize/default.nix21
-rw-r--r--pkgs/development/python-modules/datadiff/default.nix25
-rw-r--r--pkgs/development/python-modules/dot2tex/default.nix28
-rw-r--r--pkgs/development/python-modules/eggdeps/default.nix28
-rw-r--r--pkgs/development/python-modules/entrypoints/default.nix12
-rw-r--r--pkgs/development/python-modules/evernote/default.nix27
-rw-r--r--pkgs/development/python-modules/fasteners/default.nix35
-rw-r--r--pkgs/development/python-modules/flaskbabel/default.nix29
-rw-r--r--pkgs/development/python-modules/freezegun/default.nix28
-rw-r--r--pkgs/development/python-modules/funcy/default.nix24
-rw-r--r--pkgs/development/python-modules/gdata/default.nix24
-rw-r--r--pkgs/development/python-modules/geeknote/default.nix38
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix25
-rw-r--r--pkgs/development/python-modules/geopy/default.nix30
-rw-r--r--pkgs/development/python-modules/grequests/default.nix29
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix40
-rw-r--r--pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch20
-rw-r--r--pkgs/development/python-modules/guessit/default.nix4
-rw-r--r--pkgs/development/python-modules/hgsvn/default.nix32
-rw-r--r--pkgs/development/python-modules/html2text/default.nix21
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/imapclient/default.nix32
-rw-r--r--pkgs/development/python-modules/importmagic/default.nix26
-rw-r--r--pkgs/development/python-modules/isodate/default.nix30
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix38
-rw-r--r--pkgs/development/python-modules/jenkinsapi/default.nix31
-rw-r--r--pkgs/development/python-modules/kaa-base/default.nix51
-rw-r--r--pkgs/development/python-modules/kaa-metadata/default.nix56
-rw-r--r--pkgs/development/python-modules/larch/default.nix32
-rw-r--r--pkgs/development/python-modules/lasagne/default.nix31
-rw-r--r--pkgs/development/python-modules/libarchive-c/default.nix36
-rw-r--r--pkgs/development/python-modules/linecache2/default.nix26
-rw-r--r--pkgs/development/python-modules/lz4/default.nix24
-rw-r--r--pkgs/development/python-modules/mailcap-fix/default.nix23
-rw-r--r--pkgs/development/python-modules/maildir-deduplicate/default.nix26
-rw-r--r--pkgs/development/python-modules/mmpython/default.nix26
-rw-r--r--pkgs/development/python-modules/mongodict/default.nix24
-rw-r--r--pkgs/development/python-modules/mox3/default.nix40
-rw-r--r--pkgs/development/python-modules/mps-youtube/default.nix39
-rw-r--r--pkgs/development/python-modules/neovim_gui/default.nix35
-rw-r--r--pkgs/development/python-modules/nose_progressive/default.nix32
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix5
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix12
-rw-r--r--pkgs/development/python-modules/numpy/default.nix32
-rw-r--r--pkgs/development/python-modules/ofxparse/default.nix25
-rw-r--r--pkgs/development/python-modules/ofxtools/default.nix30
-rw-r--r--pkgs/development/python-modules/pagerduty/default.nix23
-rw-r--r--pkgs/development/python-modules/pamqp/default.nix28
-rw-r--r--pkgs/development/python-modules/pandocfilters/default.nix24
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix27
-rw-r--r--pkgs/development/python-modules/parsel/default.nix34
-rw-r--r--pkgs/development/python-modules/parsimonious/default.nix27
-rw-r--r--pkgs/development/python-modules/paste/default.nix31
-rw-r--r--pkgs/development/python-modules/pastedeploy/default.nix24
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix32
-rw-r--r--pkgs/development/python-modules/patch/default.nix26
-rw-r--r--pkgs/development/python-modules/pathos/default.nix30
-rw-r--r--pkgs/development/python-modules/pdfkit/default.nix25
-rw-r--r--pkgs/development/python-modules/pep8/default.nix26
-rw-r--r--pkgs/development/python-modules/percol/default.nix24
-rw-r--r--pkgs/development/python-modules/pexif/default.nix21
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix25
-rw-r--r--pkgs/development/python-modules/pgpdump/default.nix24
-rw-r--r--pkgs/development/python-modules/pickleshare/default.nix30
-rw-r--r--pkgs/development/python-modules/pid/default.nix27
-rw-r--r--pkgs/development/python-modules/piep/default.nix27
-rw-r--r--pkgs/development/python-modules/pika/default.nix35
-rw-r--r--pkgs/development/python-modules/pilkit/default.nix36
-rw-r--r--pkgs/development/python-modules/pip2nix/default.nix36
-rw-r--r--pkgs/development/python-modules/pivy/default.nix27
-rw-r--r--pkgs/development/python-modules/posix_ipc/default.nix21
-rw-r--r--pkgs/development/python-modules/power/default.nix24
-rw-r--r--pkgs/development/python-modules/pox/default.nix21
-rw-r--r--pkgs/development/python-modules/ppft/default.nix24
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix28
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix24
-rw-r--r--pkgs/development/python-modules/ptest/default.nix23
-rw-r--r--pkgs/development/python-modules/purepng/default.nix21
-rw-r--r--pkgs/development/python-modules/pweave/default.nix30
-rw-r--r--pkgs/development/python-modules/py/default.nix4
-rw-r--r--pkgs/development/python-modules/py3dns/default.nix30
-rw-r--r--pkgs/development/python-modules/pyacoustid/default.nix34
-rw-r--r--pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch (renamed from pkgs/development/python-modules/pyacoustid-py3.patch)0
-rw-r--r--pkgs/development/python-modules/pyalgotrade/default.nix28
-rw-r--r--pkgs/development/python-modules/pyaudio/default.nix26
-rw-r--r--pkgs/development/python-modules/pybcrypt/default.nix21
-rw-r--r--pkgs/development/python-modules/pyblock/default.nix38
-rw-r--r--pkgs/development/python-modules/pyblosxom/default.nix31
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix34
-rw-r--r--pkgs/development/python-modules/pycarddav/default.nix31
-rw-r--r--pkgs/development/python-modules/pycdio/default.nix44
-rw-r--r--pkgs/development/python-modules/pychef/default.nix30
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix10
-rw-r--r--pkgs/development/python-modules/pycryptopp/default.nix34
-rw-r--r--pkgs/development/python-modules/pycurl2/default.nix34
-rw-r--r--pkgs/development/python-modules/pydenticon/default.nix25
-rw-r--r--pkgs/development/python-modules/pydispatcher/default.nix28
-rw-r--r--pkgs/development/python-modules/pydns/default.nix23
-rw-r--r--pkgs/development/python-modules/pydot_ng/default.nix34
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix31
-rw-r--r--pkgs/development/python-modules/pyenchant/default.nix36
-rw-r--r--pkgs/development/python-modules/pyexcelerator/default.nix28
-rw-r--r--pkgs/development/python-modules/pyexiv2/default.nix7
-rw-r--r--pkgs/development/python-modules/pyfantom/default.nix24
-rw-r--r--pkgs/development/python-modules/pygments-markdown-lexer/default.nix27
-rw-r--r--pkgs/development/python-modules/pyicu/default.nix37
-rw-r--r--pkgs/development/python-modules/pyinotify/default.nix25
-rw-r--r--pkgs/development/python-modules/pyinputevent/default.nix24
-rw-r--r--pkgs/development/python-modules/pyinsane2/default.nix45
-rw-r--r--pkgs/development/python-modules/pykickstart/default.nix36
-rw-r--r--pkgs/development/python-modules/pykka/default.nix26
-rw-r--r--pkgs/development/python-modules/pyliblo/default.nix26
-rw-r--r--pkgs/development/python-modules/pymaging/default.nix24
-rw-r--r--pkgs/development/python-modules/pymaging_png/default.nix27
-rw-r--r--pkgs/development/python-modules/pymongo/2_9_1.nix24
-rw-r--r--pkgs/development/python-modules/pynac/default.nix21
-rw-r--r--pkgs/development/python-modules/pync/default.nix34
-rw-r--r--pkgs/development/python-modules/pynzb/default.nix30
-rw-r--r--pkgs/development/python-modules/pyopengl/default.nix50
-rw-r--r--pkgs/development/python-modules/pyparted/default.nix49
-rw-r--r--pkgs/development/python-modules/pypdf/default.nix25
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix35
-rw-r--r--pkgs/development/python-modules/pypeg2/default.nix30
-rw-r--r--pkgs/development/python-modules/pyplatec/default.nix21
-rw-r--r--pkgs/development/python-modules/pyptlib/default.nix26
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix31
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix30
-rw-r--r--pkgs/development/python-modules/pyreport/default.nix26
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix32
-rw-r--r--pkgs/development/python-modules/pyrss2gen/default.nix25
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix66
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix39
-rw-r--r--pkgs/development/python-modules/pysendfile/default.nix28
-rw-r--r--pkgs/development/python-modules/pysftp/default.nix31
-rw-r--r--pkgs/development/python-modules/pysmi/default.nix28
-rw-r--r--pkgs/development/python-modules/pysnmp/default.nix30
-rw-r--r--pkgs/development/python-modules/pysocks/default.nix23
-rw-r--r--pkgs/development/python-modules/pyspotify/default.nix44
-rw-r--r--pkgs/development/python-modules/pysqlite/default.nix57
-rw-r--r--pkgs/development/python-modules/pysvn/default.nix58
-rw-r--r--pkgs/development/python-modules/pytest/default.nix4
-rw-r--r--pkgs/development/python-modules/python-etcd/default.nix37
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix38
-rw-r--r--pkgs/development/python-modules/python-libarchive/default.nix27
-rw-r--r--pkgs/development/python-modules/python-wifi/default.nix27
-rw-r--r--pkgs/development/python-modules/python3pika/default.nix33
-rw-r--r--pkgs/development/python-modules/python_keyczar/default.nix27
-rw-r--r--pkgs/development/python-modules/python_mimeparse/default.nix24
-rw-r--r--pkgs/development/python-modules/python_statsd/default.nix28
-rw-r--r--pkgs/development/python-modules/pyutil/default.nix50
-rw-r--r--pkgs/development/python-modules/pyuv/default.nix29
-rw-r--r--pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch (renamed from pkgs/development/python-modules/pyuv-external-libuv.patch)0
-rw-r--r--pkgs/development/python-modules/pywebkitgtk/default.nix27
-rw-r--r--pkgs/development/python-modules/pyx/default.nix27
-rw-r--r--pkgs/development/python-modules/qpid-python/default.nix26
-rw-r--r--pkgs/development/python-modules/qrcode/default.nix28
-rw-r--r--pkgs/development/python-modules/qscintilla/default.nix41
-rw-r--r--pkgs/development/python-modules/qserve/default.nix24
-rw-r--r--pkgs/development/python-modules/queuelib/default.nix25
-rw-r--r--pkgs/development/python-modules/qutip/default.nix44
-rw-r--r--pkgs/development/python-modules/rabbitpy/default.nix27
-rw-r--r--pkgs/development/python-modules/rbtools/default.nix31
-rw-r--r--pkgs/development/python-modules/readme/default.nix37
-rw-r--r--pkgs/development/python-modules/recaptcha_client/default.nix23
-rw-r--r--pkgs/development/python-modules/rencode/default.nix27
-rw-r--r--pkgs/development/python-modules/repeated_test/default.nix26
-rw-r--r--pkgs/development/python-modules/repocheck/default.nix23
-rw-r--r--pkgs/development/python-modules/repoze_who/default.nix25
-rw-r--r--pkgs/development/python-modules/resampy/default.nix33
-rw-r--r--pkgs/development/python-modules/retry_decorator/default.nix21
-rw-r--r--pkgs/development/python-modules/retrying/default.nix27
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix28
-rw-r--r--pkgs/development/python-modules/robotframework-selenium2library/default.nix30
-rw-r--r--pkgs/development/python-modules/robotframework-tools/default.nix29
-rw-r--r--pkgs/development/python-modules/routes/default.nix29
-rw-r--r--pkgs/development/python-modules/rpdb/default.nix21
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix25
-rw-r--r--pkgs/development/python-modules/rsa/default.nix26
-rw-r--r--pkgs/development/python-modules/ruamel_base/default.nix21
-rw-r--r--pkgs/development/python-modules/ruamel_ordereddict/default.nix24
-rw-r--r--pkgs/development/python-modules/runsnakerun/default.nix25
-rw-r--r--pkgs/development/python-modules/sandboxlib/default.nix26
-rw-r--r--pkgs/development/python-modules/scales/default.nix29
-rw-r--r--pkgs/development/python-modules/scipy/default.nix7
-rw-r--r--pkgs/development/python-modules/scripttest/default.nix27
-rw-r--r--pkgs/development/python-modules/semantic/default.nix30
-rw-r--r--pkgs/development/python-modules/setproctitle/default.nix22
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptoolsdarcs/default.nix30
-rw-r--r--pkgs/development/python-modules/setuptoolstrial/default.nix38
-rw-r--r--pkgs/development/python-modules/sexpdata/default.nix23
-rw-r--r--pkgs/development/python-modules/shortuuid/default.nix25
-rw-r--r--pkgs/development/python-modules/shouldbe/default.nix28
-rw-r--r--pkgs/development/python-modules/signedjson/default.nix26
-rw-r--r--pkgs/development/python-modules/sigtools/default.nix33
-rw-r--r--pkgs/development/python-modules/simpleai/default.nix29
-rw-r--r--pkgs/development/python-modules/simplebayes/default.nix36
-rw-r--r--pkgs/development/python-modules/simpleparse/default.nix26
-rw-r--r--pkgs/development/python-modules/sipsimple/default.nix41
-rw-r--r--pkgs/development/python-modules/slob/default.nix34
-rw-r--r--pkgs/development/python-modules/slowaes/default.nix24
-rw-r--r--pkgs/development/python-modules/smartdc/default.nix25
-rw-r--r--pkgs/development/python-modules/smartypants/default.nix25
-rw-r--r--pkgs/development/python-modules/smugline/default.nix41
-rw-r--r--pkgs/development/python-modules/snappergui/default.nix30
-rw-r--r--pkgs/development/python-modules/socksipy-branch/default.nix21
-rw-r--r--pkgs/development/python-modules/sopel/default.nix40
-rw-r--r--pkgs/development/python-modules/sorl_thumbnail/default.nix24
-rw-r--r--pkgs/development/python-modules/speaklater/default.nix22
-rw-r--r--pkgs/development/python-modules/sphinx_pypi_upload/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinx_rtd_theme/default.nix22
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix36
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-spelling/default.nix30
-rw-r--r--pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix28
-rw-r--r--pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix24
-rw-r--r--pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix28
-rw-r--r--pkgs/development/python-modules/sqlalchemy-imageattach/default.nix42
-rw-r--r--pkgs/development/python-modules/sqlite3dbm/default.nix23
-rw-r--r--pkgs/development/python-modules/sqlobject/default.nix29
-rw-r--r--pkgs/development/python-modules/sqlparse/default.nix34
-rw-r--r--pkgs/development/python-modules/squaremap/default.nix23
-rw-r--r--pkgs/development/python-modules/stompclient/default.nix29
-rw-r--r--pkgs/development/python-modules/subdownloader/default.nix66
-rw-r--r--pkgs/development/python-modules/subunit/default.nix21
-rw-r--r--pkgs/development/python-modules/suds-jurko/default.nix33
-rw-r--r--pkgs/development/python-modules/suds/default.nix29
-rw-r--r--pkgs/development/python-modules/suds/suds-0.4-CVE-2013-2217.patch (renamed from pkgs/development/python-modules/suds-0.4-CVE-2013-2217.patch)0
-rw-r--r--pkgs/development/python-modules/sure/default.nix32
-rw-r--r--pkgs/development/python-modules/svg2tikz/default.nix28
-rw-r--r--pkgs/development/python-modules/svgwrite/default.nix26
-rw-r--r--pkgs/development/python-modules/tarman/default.nix34
-rw-r--r--pkgs/development/python-modules/taskw/default.nix40
-rw-r--r--pkgs/development/python-modules/telegram/default.nix21
-rw-r--r--pkgs/development/python-modules/termcolor/default.nix21
-rw-r--r--pkgs/development/python-modules/terminaltables/default.nix21
-rw-r--r--pkgs/development/python-modules/testpath/default.nix22
-rw-r--r--pkgs/development/python-modules/testrepository/default.nix34
-rw-r--r--pkgs/development/python-modules/testscenarios/default.nix24
-rw-r--r--pkgs/development/python-modules/threadpool/default.nix21
-rw-r--r--pkgs/development/python-modules/thrift/default.nix25
-rw-r--r--pkgs/development/python-modules/thumborpexif/default.nix23
-rw-r--r--pkgs/development/python-modules/tilestache/default.nix31
-rw-r--r--pkgs/development/python-modules/timelib/default.nix22
-rw-r--r--pkgs/development/python-modules/tissue/default.nix27
-rw-r--r--pkgs/development/python-modules/tkinter/default.nix28
-rw-r--r--pkgs/development/python-modules/tlsh/default.nix37
-rw-r--r--pkgs/development/python-modules/tlslite/default.nix21
-rw-r--r--pkgs/development/python-modules/tokenlib/default.nix26
-rw-r--r--pkgs/development/python-modules/toposort/default.nix23
-rw-r--r--pkgs/development/python-modules/traceback2/default.nix28
-rw-r--r--pkgs/development/python-modules/tracing/default.nix28
-rw-r--r--pkgs/development/python-modules/traits/default.nix39
-rw-r--r--pkgs/development/python-modules/translationstring/default.nix22
-rw-r--r--pkgs/development/python-modules/transmissionrpc/default.nix24
-rw-r--r--pkgs/development/python-modules/trezor_agent/default.nix31
-rw-r--r--pkgs/development/python-modules/ttystatus/default.nix30
-rw-r--r--pkgs/development/python-modules/tvdb_api/default.nix25
-rw-r--r--pkgs/development/python-modules/tvnamer/default.nix30
-rw-r--r--pkgs/development/python-modules/twiggy/default.nix25
-rw-r--r--pkgs/development/python-modules/twitter-common-collections/default.nix25
-rw-r--r--pkgs/development/python-modules/twitter-common-confluence/default.nix25
-rw-r--r--pkgs/development/python-modules/twitter-common-dirutil/default.nix25
-rw-r--r--pkgs/development/python-modules/twitter-common-lang/default.nix22
-rw-r--r--pkgs/development/python-modules/twitter-common-log/default.nix26
-rw-r--r--pkgs/development/python-modules/twitter-common-options/default.nix22
-rw-r--r--pkgs/development/python-modules/twitter/default.nix23
-rw-r--r--pkgs/development/python-modules/txaio/default.nix9
-rw-r--r--pkgs/development/python-modules/txamqp/default.nix25
-rw-r--r--pkgs/development/python-modules/txgithub/default.nix39
-rw-r--r--pkgs/development/python-modules/txrequests/default.nix35
-rw-r--r--pkgs/development/python-modules/typogrify/default.nix32
-rw-r--r--pkgs/development/python-modules/ujson/default.nix23
-rw-r--r--pkgs/development/python-modules/umalqurra/default.nix26
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix2
-rw-r--r--pkgs/development/python-modules/unicodecsv/default.nix24
-rw-r--r--pkgs/development/python-modules/unittest2/default.nix38
-rw-r--r--pkgs/development/python-modules/unpaddedbase64/default.nix22
-rw-r--r--pkgs/development/python-modules/upass/default.nix27
-rw-r--r--pkgs/development/python-modules/uptime/default.nix22
-rw-r--r--pkgs/development/python-modules/uritemplate_py/default.nix22
-rw-r--r--pkgs/development/python-modules/urwidtrees/default.nix26
-rw-r--r--pkgs/development/python-modules/versiontools/default.nix24
-rw-r--r--pkgs/development/python-modules/veryprettytable/default.nix25
-rw-r--r--pkgs/development/python-modules/virtualenv-clone/default.nix29
-rw-r--r--pkgs/development/python-modules/virtualenvwrapper/default.nix75
-rw-r--r--pkgs/development/python-modules/vmprof/default.nix28
-rw-r--r--pkgs/development/python-modules/vultr/default.nix30
-rw-r--r--pkgs/development/python-modules/w3lib/default.nix26
-rw-r--r--pkgs/development/python-modules/waitress/default.nix24
-rw-r--r--pkgs/development/python-modules/web/default.nix28
-rw-r--r--pkgs/development/python-modules/webhelpers/default.nix31
-rw-r--r--pkgs/development/python-modules/webob/default.nix25
-rw-r--r--pkgs/development/python-modules/websockify/default.nix24
-rw-r--r--pkgs/development/python-modules/webtest/default.nix37
-rw-r--r--pkgs/development/python-modules/wheel/default.nix4
-rw-r--r--pkgs/development/python-modules/willow/default.nix32
-rw-r--r--pkgs/development/python-modules/word2vec/default.nix32
-rw-r--r--pkgs/development/python-modules/worldengine/default.nix63
-rw-r--r--pkgs/development/python-modules/wsgiproxy/default.nix27
-rw-r--r--pkgs/development/python-modules/wsgiproxy2/default.nix30
-rw-r--r--pkgs/development/python-modules/x11_hash/default.nix22
-rw-r--r--pkgs/development/python-modules/xattr/default.nix32
-rw-r--r--pkgs/development/python-modules/xcaplib/default.nix28
-rw-r--r--pkgs/development/python-modules/xdis/default.nix2
-rw-r--r--pkgs/development/python-modules/xkcdpass/default.nix25
-rw-r--r--pkgs/development/python-modules/xlib/default.nix31
-rw-r--r--pkgs/development/python-modules/xlrd/default.nix28
-rw-r--r--pkgs/development/python-modules/xlsx2csv/default.nix22
-rw-r--r--pkgs/development/python-modules/yapsy/default.nix23
-rw-r--r--pkgs/development/python-modules/zbaemon/default.nix28
-rw-r--r--pkgs/development/python-modules/zbase32/default.nix27
-rw-r--r--pkgs/development/python-modules/zdaemon/default.nix28
-rw-r--r--pkgs/development/python-modules/zerobin/default.nix33
-rw-r--r--pkgs/development/python-modules/zfec/default.nix37
-rw-r--r--pkgs/development/python-modules/zope_broken/default.nix26
-rw-r--r--pkgs/development/python-modules/zope_component/default.nix32
-rw-r--r--pkgs/development/python-modules/zope_configuration/default.nix31
-rw-r--r--pkgs/development/python-modules/zope_contenttype/default.nix22
-rw-r--r--pkgs/development/python-modules/zope_dottedname/default.nix22
-rw-r--r--pkgs/development/python-modules/zope_event/default.nix22
-rw-r--r--pkgs/development/python-modules/zope_exceptions/default.nix28
-rw-r--r--pkgs/development/python-modules/zope_filerepresentation/default.nix25
-rw-r--r--pkgs/development/python-modules/zope_i18n/default.nix26
-rw-r--r--pkgs/development/python-modules/zope_i18nmessageid/default.nix22
-rw-r--r--pkgs/development/python-modules/zope_lifecycleevent/default.nix26
-rw-r--r--pkgs/development/python-modules/zope_location/default.nix32
-rw-r--r--pkgs/development/python-modules/zope_proxy/default.nix28
-rw-r--r--pkgs/development/python-modules/zope_schema/default.nix33
-rw-r--r--pkgs/development/python-modules/zope_size/default.nix26
-rw-r--r--pkgs/development/python-modules/zope_testing/default.nix30
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/scons/common.nix2
-rw-r--r--pkgs/development/tools/build-managers/scons/setup-hook.sh84
-rw-r--r--pkgs/development/tools/build-managers/waf/setup-hook.sh62
-rw-r--r--pkgs/development/tools/godot/default.nix7
-rw-r--r--pkgs/development/tools/java/cfr/default.nix4
-rw-r--r--pkgs/development/tools/jid/default.nix25
-rw-r--r--pkgs/development/tools/jid/deps.nix57
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/misc/creduce/default.nix2
-rw-r--r--pkgs/development/tools/misc/objconv/default.nix4
-rw-r--r--pkgs/development/tools/misc/pkgconf/default.nix18
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix4
-rw-r--r--pkgs/development/tools/parsing/hammer/default.nix4
-rw-r--r--pkgs/development/tools/toluapp/default.nix7
-rw-r--r--pkgs/development/web/now-cli/default.nix4
451 files changed, 10195 insertions, 656 deletions
diff --git a/pkgs/development/compilers/clasp/default.nix b/pkgs/development/compilers/clasp/default.nix
index 2c260e110d60..349482fbde97 100644
--- a/pkgs/development/compilers/clasp/default.nix
+++ b/pkgs/development/compilers/clasp/default.nix
@@ -1,7 +1,8 @@
-{stdenv, fetchFromGitHub
-  , llvmPackages
-  , cmake, boehmgc, gmp, zlib, ncurses, boost
-  , python, git, sbcl
+{ stdenv, fetchFromGitHub
+, llvmPackages
+, cmake, boehmgc, gmp, zlib, ncurses, boost
+, python, git, sbcl
+, wafHook
 }:
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake python git sbcl ];
+  nativeBuildInputs = [ cmake python git sbcl wafHook ];
 
   buildInputs = with llvmPackages; (
     builtins.map (x: stdenv.lib.overrideDerivation x
@@ -32,36 +33,14 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = " -frtti ";
 
-  configurePhase = ''
-    runHook preConfigure
-
-    export CXX=clang++
-    export CC=clang
-
+  postPatch = ''
     echo "
       INSTALL_PATH_PREFIX = '$out'
     " | sed -e 's/^ *//' > wscript.config
-
-    python ./waf configure update_submodules
-
-    runHook postConfigure
   '';
 
-  buildPhase = ''
-    runHook preBuild
-
-    python ./waf build_cboehm
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    python ./waf install_cboehm
-
-    runHook postInstall
-  '';
+  buildTargets = "build_cboehm";
+  installTargets = "install_cboehm";
 
   meta = {
     inherit version;
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index e40994a078e3..bcb724fd58c6 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -52,12 +52,9 @@ with builtins;
 
 let version = "4.8.5";
 
-    enableParallelBuilding = true;
-
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
-    patches = [ ]
-      ++ optional enableParallelBuilding ../parallel-bconfig.patch
+    patches = [ ../parallel-bconfig.patch ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langFortran ../gfortran-driving.patch
@@ -214,20 +211,27 @@ stdenv.mkDerivation ({
     ++ (optional (perl != null) perl)
     ++ (optional javaAwtGtk pkgconfig);
 
-  buildInputs = [ gmp mpfr libmpc libelf ]
-    ++ (optional (cloog != null) cloog)
+  # For building runtime libs
+  depsBuildTarget =
+    if hostPlatform == buildPlatform then [
+      targetPackages.stdenv.cc.bintools # newly-built gcc will be used
+    ] else assert targetPlatform == hostPlatform; [ # build != host == target
+      stdenv.cc
+    ];
+
+  buildInputs = [
+    gmp mpfr libmpc libelf
+    targetPackages.stdenv.cc.bintools # For linking code at run-time
+  ] ++ (optional (cloog != null) cloog)
     ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
     ++ (optionals langJava [ boehmgc zip unzip ])
     ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
     ;
 
-
   preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
     export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
     export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
@@ -359,8 +363,8 @@ stdenv.mkDerivation ({
     ++ optional (zlib != null) zlib
     ++ optional langJava boehmgc
     ++ optionals javaAwtGtk xlibs
-    ++ optionals javaAwtGtk [ gmp mpfr ])
-  );
+    ++ optionals javaAwtGtk [ gmp mpfr ]
+  ));
 
   EXTRA_TARGET_FLAGS = optionals
     (targetPlatform != hostPlatform && libcCross != null)
@@ -387,7 +391,8 @@ stdenv.mkDerivation ({
     hardeningUnsupportedFlags = [ "stackprotector" ];
   };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index bd5257b94a09..13ff4165a41c 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, targetPackages, fetchurl, noSysDirs, fetchpatch
+{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
 , langC ? true, langCC ? true, langFortran ? false
 , langObjC ? stdenv.targetPlatform.isDarwin
 , langObjCpp ? stdenv.targetPlatform.isDarwin
@@ -52,13 +52,10 @@ with builtins;
 
 let version = "4.9.4";
 
-    enableParallelBuilding = true;
-
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
-      [ ../use-source-date-epoch.patch ]
-      ++ optionals enableParallelBuilding [ ../parallel-bconfig.patch ./parallel-strsignal.patch ]
+      [ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langFortran ../gfortran-driving.patch
@@ -239,8 +236,6 @@ stdenv.mkDerivation ({
     ++ (optional (zlib != null) zlib)
     ++ (optionals langJava [ boehmgc zip unzip ])
     ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
@@ -255,8 +250,7 @@ stdenv.mkDerivation ({
   ''
   + stdenv.lib.optionalString (langJava || langGo) ''
     export lib=$out;
-  ''
-  ;
+  '';
 
   dontDisableStatic = true;
 
@@ -268,7 +262,8 @@ stdenv.mkDerivation ({
     [
       "--with-gmp-include=${gmp.dev}/include"
       "--with-gmp-lib=${gmp.out}/lib"
-      "--with-mpfr=${mpfr.dev}"
+      "--with-mpfr-include=${mpfr.dev}/include"
+      "--with-mpfr-lib=${mpfr.out}/lib"
       "--with-mpc=${libmpc}"
     ] ++
     optional (libelf != null) "--with-libelf=${libelf}" ++
@@ -381,7 +376,8 @@ stdenv.mkDerivation ({
     ++ optional (zlib != null) zlib
     ++ optional langJava boehmgc
     ++ optionals javaAwtGtk xlibs
-    ++ optionals javaAwtGtk [ gmp mpfr ]));
+    ++ optionals javaAwtGtk [ gmp mpfr ]
+  ));
 
   EXTRA_TARGET_FLAGS = optionals
     (targetPlatform != hostPlatform && libcCross != null)
@@ -402,10 +398,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -429,7 +428,8 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
-      stdenv.lib.platforms.illumos;
+      stdenv.lib.platforms.illumos ++
+      stdenv.lib.platforms.darwin;
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index 85b3d96e1368..a30cd6bbda97 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -49,9 +49,6 @@ with stdenv.lib;
 with builtins;
 
 let version = "5.5.0";
-    sha256 = "11zd1hgzkli3b2v70qsm2hyqppngd4616qc96lmm9zl2kl9yl32k";
-
-    enableParallelBuilding = true;
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
@@ -170,7 +167,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
-    inherit sha256;
+    sha256 = "11zd1hgzkli3b2v70qsm2hyqppngd4616qc96lmm9zl2kl9yl32k";
   };
 
   inherit patches;
@@ -244,12 +241,10 @@ stdenv.mkDerivation ({
     ++ (optional (zlib != null) zlib)
     ++ (optionals langJava [ boehmgc zip unzip ])
     ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
 
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
-    ++ (optional hostPlatform.isDarwin targetPackages.stdenv.cc.bintools)
     ;
 
   NIX_LDFLAGS = stdenv.lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
@@ -408,10 +403,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -435,6 +433,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index 98e24900b01f..372a7065f2dc 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -48,9 +48,7 @@ assert langGo -> langCC;
 with stdenv.lib;
 with builtins;
 
-let version = "6.4.0";
-
-    enableParallelBuilding = true;
+let version = "6.5.0";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
@@ -59,8 +57,6 @@ let version = "6.4.0";
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
       ++ optional langFortran ../gfortran-driving.patch
-      ++ [ ../struct-ucontext.patch ../struct-sigaltstack.patch ] # glibc-2.26
-      ++ optional langJava [ ../struct-ucontext-libjava.patch ] # glibc-2.26
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
       ;
 
@@ -170,7 +166,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
-    sha256 = "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5";
+    sha256 = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby";
   };
 
   inherit patches;
@@ -245,12 +241,9 @@ stdenv.mkDerivation ({
     ++ (optional (zlib != null) zlib)
     ++ (optionals langJava [ boehmgc zip unzip ])
     ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
-    ++ (optional hostPlatform.isDarwin targetPackages.stdenv.cc.bintools)
     ;
 
   NIX_LDFLAGS = stdenv.lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
@@ -263,8 +256,7 @@ stdenv.mkDerivation ({
   ''
   + stdenv.lib.optionalString (langJava || langGo) ''
     export lib=$out;
-  ''
-  ;
+  '';
 
   dontDisableStatic = true;
 
@@ -391,7 +383,8 @@ stdenv.mkDerivation ({
     ++ optional (zlib != null) zlib
     ++ optional langJava boehmgc
     ++ optionals javaAwtGtk xlibs
-    ++ optionals javaAwtGtk [ gmp mpfr ]));
+    ++ optionals javaAwtGtk [ gmp mpfr ]
+  ));
 
   EXTRA_TARGET_FLAGS = optionals
     (targetPlatform != hostPlatform && libcCross != null)
@@ -412,10 +405,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -439,6 +435,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index 064d9eb6bc7b..094c26cbf696 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -39,8 +39,6 @@ with builtins;
 
 let version = "7.3.0";
 
-    enableParallelBuilding = true;
-
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
@@ -221,12 +219,9 @@ stdenv.mkDerivation ({
     targetPackages.stdenv.cc.bintools # For linking code at run-time
   ] ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
-    ++ (optional hostPlatform.isDarwin targetPackages.stdenv.cc.bintools)
     ;
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
@@ -361,10 +356,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -388,6 +386,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index c6fea70cfbb7..1335666c54ce 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -39,8 +39,6 @@ with builtins;
 
 let version = "8.2.0";
 
-    enableParallelBuilding = true;
-
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
@@ -210,12 +208,9 @@ stdenv.mkDerivation ({
     targetPackages.stdenv.cc.bintools # For linking code at run-time
   ] ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
-    ++ (optional hostPlatform.isDarwin targetPackages.stdenv.cc.bintools)
     ;
 
   NIX_LDFLAGS = stdenv.lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
@@ -339,10 +334,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -366,6 +364,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/compilers/gcc/snapshot/default.nix b/pkgs/development/compilers/gcc/snapshot/default.nix
index a308abd9c16f..c18189cd9496 100644
--- a/pkgs/development/compilers/gcc/snapshot/default.nix
+++ b/pkgs/development/compilers/gcc/snapshot/default.nix
@@ -40,8 +40,6 @@ with builtins;
 
 let version = "7-20170409";
 
-    enableParallelBuilding = true;
-
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
@@ -179,12 +177,9 @@ stdenv.mkDerivation ({
     targetPackages.stdenv.cc.bintools # For linking code at run-time
   ] ++ (optional (isl != null) isl)
     ++ (optional (zlib != null) zlib)
-    ++ (optionals (targetPlatform != hostPlatform) [targetPackages.stdenv.cc.bintools])
-
     # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
     # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
     ++ (optional hostPlatform.isDarwin gnused)
-    ++ (optional hostPlatform.isDarwin targetPackages.stdenv.cc.bintools)
     ;
 
   NIX_LDFLAGS = stdenv.lib.optionalString  hostPlatform.isSunOS "-lm -ldl";
@@ -311,10 +306,13 @@ stdenv.mkDerivation ({
         "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}"
     ]));
 
-  passthru =
-    { inherit langC langCC langObjC langObjCpp langFortran langGo version; isGNU = true; };
+  passthru = {
+    inherit langC langCC langObjC langObjCpp langFortran langGo version;
+    isGNU = true;
+  };
 
-  inherit enableParallelBuilding enableMultilib;
+  enableParallelBuilding = true;
+  inherit enableMultilib;
 
   inherit (stdenv) is64bit;
 
@@ -338,6 +336,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       stdenv.lib.platforms.darwin;
 
     broken = true;
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index dee1cc3d3085..3ecea2b54edb 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -217,7 +217,7 @@ stdenv.mkDerivation (rec {
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
 
-  buildInputs = libDeps hostPlatform;
+  buildInputs = [ perl ] ++ (libDeps hostPlatform);
 
   propagatedBuildInputs = [ targetPackages.stdenv.cc ]
     ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
diff --git a/pkgs/development/compilers/ghc/8.4.4.nix b/pkgs/development/compilers/ghc/8.4.4.nix
index 32a9095e1238..139457f43c8a 100644
--- a/pkgs/development/compilers/ghc/8.4.4.nix
+++ b/pkgs/development/compilers/ghc/8.4.4.nix
@@ -190,7 +190,7 @@ stdenv.mkDerivation (rec {
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
 
-  buildInputs = libDeps hostPlatform;
+  buildInputs = [ perl ] ++ (libDeps hostPlatform);
 
   propagatedBuildInputs = [ targetPackages.stdenv.cc ]
     ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
diff --git a/pkgs/development/compilers/ghc/8.6.1.nix b/pkgs/development/compilers/ghc/8.6.1.nix
index 73ddd3eab204..911a900f6d23 100644
--- a/pkgs/development/compilers/ghc/8.6.1.nix
+++ b/pkgs/development/compilers/ghc/8.6.1.nix
@@ -175,7 +175,7 @@ stdenv.mkDerivation (rec {
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
 
-  buildInputs = libDeps hostPlatform;
+  buildInputs = [ perl ] ++ (libDeps hostPlatform);
 
   propagatedBuildInputs = [ targetPackages.stdenv.cc ]
     ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
diff --git a/pkgs/development/compilers/ghc/8.6.2.nix b/pkgs/development/compilers/ghc/8.6.2.nix
index f5e8ec6de0d6..5e263fd06b43 100644
--- a/pkgs/development/compilers/ghc/8.6.2.nix
+++ b/pkgs/development/compilers/ghc/8.6.2.nix
@@ -175,7 +175,7 @@ stdenv.mkDerivation (rec {
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
 
-  buildInputs = libDeps hostPlatform;
+  buildInputs = [ perl ] ++ (libDeps hostPlatform);
 
   propagatedBuildInputs = [ targetPackages.stdenv.cc ]
     ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index f85e68aafe42..bd02daf5e1cf 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -157,7 +157,7 @@ stdenv.mkDerivation (rec {
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
 
-  buildInputs = libDeps hostPlatform;
+  buildInputs = [ perl ] ++ (libDeps hostPlatform);
 
   propagatedBuildInputs = [ targetPackages.stdenv.cc ]
     ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index c427ec75cb37..4d8b3f398141 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 let
-  version = "1.3.0";
+  version = "1.3.10";
 in stdenv.mkDerivation rec {
   inherit version;
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "14i5qmni1dzfamab6y659b5nvgp99m1abx71i83zcbfi9nw1r1gz";
+    sha256 = "0zf6p0pzdi6dz2d4dca364wf30zyq326xdfg97zk8kp1a4qwjyfa";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix
index 6dae8be97c88..ae4b27441593 100644
--- a/pkgs/development/compilers/llvm/5/llvm.nix
+++ b/pkgs/development/compilers/llvm/5/llvm.nix
@@ -36,9 +36,7 @@ in stdenv.mkDerivation (rec {
   nativeBuildInputs = [ cmake python ]
     ++ stdenv.lib.optional enableManpages python.pkgs.sphinx;
 
-  buildInputs = [ libxml2 libffi ]
-    # TODO(@Ericson2314): Remove next mass rebuild
-    ++ stdenv.lib.optionals (stdenv.isDarwin && stdenv.hostPlatform == stdenv.buildPlatform) [ libcxxabi ];
+  buildInputs = [ libxml2 libffi ];
 
   propagatedBuildInputs = [ ncurses zlib ];
 
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 948948ebc44e..d26627ff5b9c 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -21,42 +21,42 @@ let
     else
       throw "openjdk requires i686-linux or x86_64 linux";
 
-  update = "181";
-  build = "13";
+  update = "192";
+  build = "26";
   baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u";
   repover = "jdk8u${update}-b${build}";
   paxflags = if stdenv.isi686 then "msp" else "m";
   jdk8 = fetchurl {
              url = "${baseurl}/archive/${repover}.tar.gz";
-             sha256 = "0rlbf3v55d45fl9gigawghd0vs0cr3k48zj48qlv3k9yxg1knq9a";
+             sha256 = "1hx5sfsglc101aqs9n7cz7rh447d6rxfxkbw03crvzbvy9n6ag2d";
           };
   langtools = fetchurl {
              url = "${baseurl}/langtools/archive/${repover}.tar.gz";
-             sha256 = "1sk5f45ndxj8ch9pqfwmis5hnb09an7nvz3n1wyd5la42jprmwaf";
+             sha256 = "0vq6nlzs85agjkilpr53v7kjrd99kq770zipqghjmlfzyiy9xk4q";
           };
   hotspot = fetchurl {
              url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
-             sha256 = "0pvx5hwmx61sbyi02pngfbky219raqqjw2xjms01nz18mzr77c84";
+             sha256 = "0q5z2glfiip0lsisp1zy1zcw91hi1kznphm7w3iagq8s7550wbvh";
           };
   corba = fetchurl {
              url = "${baseurl}/corba/archive/${repover}.tar.gz";
-             sha256 = "1b0r3fjv9q85j74lgzr2vv4z5gl13bb46zvh36mfks6j74z7ki1z";
+             sha256 = "1mgg82066c9wjsj9ciqv4lrn1av5cb86hq00lkpsffdqbwx3vrm3";
           };
   jdk = fetchurl {
              url = "${baseurl}/jdk/archive/${repover}.tar.gz";
-             sha256 = "1a5gm4w4f79wj0ciwcv8l8m4ha8hjs2r62bvj0vls2kwr5c8znn4";
+             sha256 = "1s87a49hl4h21kf2yh1w67wgb179j0f5v62cxbrvvd5lk2h5jyvf";
           };
   jaxws = fetchurl {
              url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
-             sha256 = "1f92s3mpbqxzgh5pazqm8pn5swqkmdrkm7mnmga2kgshzlknh6pm";
+             sha256 = "05alcixcxcdms373byh21d2brsky6kj14b3h80cs9bi1gfnbqilq";
           };
   jaxp = fetchurl {
              url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
-             sha256 = "0fwdqr031yyyjrpsk9fwp4y1vlfmdr1rdzgk44gyypwjdap7a11d";
+             sha256 = "1r3fqnl5jqmxzsjqjrka35f8hwqqap9jg8zwqk2vv9qikrm7frhl";
           };
   nashorn = fetchurl {
              url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
-             sha256 = "0j5f98pa6746m1xq4842qq5d1ql5x8wvcrjmjk433slgma9hf8pj";
+             sha256 = "0lzwi35lp4a477jkmfa53kxy3g9lzcmh56wprg805gbv4sjnkjk1";
           };
   openjdk8 = stdenv.mkDerivation {
     name = "openjdk-8u${update}b${build}";
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index e645a3424c0d..0d5a892e2e96 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -1,6 +1,11 @@
 { stdenv, fetchFromGitHub, coq }:
 
 let params =
+  let v_8_8_0 = {
+      rev = "V8.8.0";
+      sha256 = "1ymxyrvjygscxkfj3qkq66skl3vdjhb670rzvsvgmwrjkrakjnfg";
+    };
+  in
   {
     "8.6" = {
       rev = "v8.6.0";
@@ -10,10 +15,8 @@ let params =
       rev = "V8.7.0";
       sha256 = "11c4sdmpd3l6jjl4v6k213z9fhrmmm1xnly3zmzam1wrrdif4ghl";
     };
-    "8.8" = {
-      rev = "V8.8+beta1";
-      sha256 = "1ymxyrvjygscxkfj3qkq66skl3vdjhb670rzvsvgmwrjkrakjnfg";
-    };
+    "8.8" = v_8_8_0;
+    "8.9" = v_8_8_0;
   };
   param = params."${coq.coq-version}"
 ; in
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 690551a42558..ba95e8cced0c 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -897,6 +897,7 @@ self: super: {
   cryptohash-md5 = doJailbreak super.cryptohash-md5;
   text-short = doJailbreak super.text-short;
   gitHUD = dontCheck super.gitHUD;
+  githud = dontCheck super.githud;
 
   # https://github.com/aisamanra/config-ini/issues/12
   config-ini = dontCheck super.config-ini;
@@ -1182,4 +1183,11 @@ self: super: {
   # https://github.com/DanielG/cabal-helper/issues/59
   cabal-helper = doJailbreak super.cabal-helper;
 
+  # TODO(Profpatsch): factor out local nix store setup from
+  # lib/tests/release.nix and use that for the tests of libnix
+  # libnix = overrideCabal super.libnix (old: {
+  #   testToolDepends = old.testToolDepends or [] ++ [ pkgs.nix ];
+  # });
+  libnix = dontCheck super.libnix;
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 3a8687eecbe4..e4edb59171f5 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -166283,7 +166283,7 @@ self: {
        librarySystemDepends = [ poker-eval ];
        description = "Binding to libpoker-eval";
        license = stdenv.lib.licenses.publicDomain;
-     }) {inherit (pkgs) poker-eval;};
+     }) {poker-eval = null;};
 
   "pokitdok" = callPackage
     ({ mkDerivation, aeson, base, base64-string, bytestring
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
index 1dfd3476d484..dccba8ebb0e4 100644
--- a/pkgs/development/interpreters/groovy/default.nix
+++ b/pkgs/development/interpreters/groovy/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "groovy-${version}";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchurl {
     url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
-    sha256 = "1iw5iiygl0a7dzh22gkjhzzxd7r8kb4lncjvvgqfpxx967djp527";
+    sha256 = "1s661d5kwiafv5i1pq2b7k8b2fd7m2zp3xwcrf4iv1iik033djdj";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix
index 81b71d721b84..330e6b282ce1 100644
--- a/pkgs/development/interpreters/jruby/default.nix
+++ b/pkgs/development/interpreters/jruby/default.nix
@@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
 jruby = stdenv.mkDerivation rec {
   name = "jruby-${version}";
 
-  version = "9.2.1.0";
+  version = "9.2.4.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "0d98ydiavdr811xsrz9zbw9yjpn0acc2ycakqpfg1vs4n5w7764c";
+    sha256 = "034asndnqjgha74b6qr1gza9xfrmq9m8f6ysnblgd2axr218qqxr";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index dd4c325e4685..63dad3bf42ff 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -74,6 +74,12 @@ let
         url = "file://${./type_getattro.patch}";
         sha256 = "11v9yx20hs3jmw0wggzvmw39qs4mxay4kb8iq2qjydwy9ya61nrd";
       })
+
+      (fetchpatch {
+        name = "CVE-2018-1000802.patch";
+        url = "https://github.com/python/cpython/pull/8985.patch";
+        sha256 = "1c8nq2c9sjqa8ipl62hiandg6a7lzrwwfhi3ky6jd3pxgyalrh97";
+      })
     ] ++ optionals (x11Support && stdenv.isDarwin) [
       ./use-correct-tcl-tk-on-darwin.patch
     ] ++ optionals stdenv.isLinux [
diff --git a/pkgs/development/interpreters/python/cpython/3.6/default.nix b/pkgs/development/interpreters/python/cpython/3.6/default.nix
index 5b5041f5bcd3..4c9d0c2a8962 100644
--- a/pkgs/development/interpreters/python/cpython/3.6/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.6/default.nix
@@ -26,7 +26,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.6";
-  minorVersion = "6";
+  minorVersion = "7";
   minorVersionSuffix = "";
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
   libPrefix = "python${majorVersion}";
@@ -51,7 +51,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0vz1wqg50zq6g15givdx1s2rq5752y5g2f1978bs6wvf8mfw36yp";
+    sha256 = "0zgp8nvz3rkiz5cxd42vgpah4rvw3kmg9qz9lfq36rfnm40i9zc1";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/interpreters/python/cpython/3.7/default.nix b/pkgs/development/interpreters/python/cpython/3.7/default.nix
index be503d29b3a7..093d8599690c 100644
--- a/pkgs/development/interpreters/python/cpython/3.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.7/default.nix
@@ -26,7 +26,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.7";
-  minorVersion = "0";
+  minorVersion = "1";
   minorVersionSuffix = "";
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
   libPrefix = "python${majorVersion}";
@@ -48,7 +48,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0j9mic5c9lbd2b20wka7hily7szz740wy9ilfrczxap63rnrk0h3";
+    sha256 = "0v9x4h22rh5cwpsq1mwpdi3c9lc9820lzp2nmn9g20llij72nzps";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix
index 8c8fe25f5000..01ca9a3ec833 100644
--- a/pkgs/development/libraries/aubio/default.nix
+++ b/pkgs/development/libraries/aubio/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, fftw, libjack2, libsamplerate
-, libsndfile, pkgconfig, python
+, libsndfile, pkgconfig, python, wafHook
 }:
 
 stdenv.mkDerivation rec {
@@ -10,15 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0hd0kzfmr46am00ygxar8alrldv92c5azqy701iilfmbqpz4mvfb";
   };
 
-  nativeBuildInputs = [ pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig python wafHook ];
   buildInputs = [ alsaLib fftw libjack2 libsamplerate libsndfile ];
 
-  configurePhase = "python waf configure --prefix=$out";
-
-  buildPhase = "python waf";
-
-  installPhase = "python waf install";
-
   meta = with stdenv.lib; {
     description = "Library for audio labelling";
     homepage = https://aubio.org/;
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index f28e374c852a..373d50a0a434 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, sratom }:
+{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, sratom, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "lilv-${version}";
@@ -9,15 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0f24cd7wkk5l969857g2ydz2kjjrkvvddg1g87xzzs78lsvq8fy3";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ lv2 python serd sord sratom ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/lilv;
     description = "A C library to make the use of LV2 plugins";
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index 3df8f5e30789..5b98a88a8fb5 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk2, libsndfile, pkgconfig, python }:
+{ stdenv, fetchurl, gtk2, libsndfile, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "lv2-${version}";
@@ -9,15 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ gtk2 libsndfile python ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     homepage = http://lv2plug.in;
     description = "A plugin standard for audio systems";
diff --git a/pkgs/development/libraries/audio/lv2/unstable.nix b/pkgs/development/libraries/audio/lv2/unstable.nix
index 4a632d07006b..81cc868f52ca 100644
--- a/pkgs/development/libraries/audio/lv2/unstable.nix
+++ b/pkgs/development/libraries/audio/lv2/unstable.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, gtk2, libsndfile, pkgconfig, python }:
+{ stdenv, fetchgit, gtk2, libsndfile, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "lv2-unstable-${version}";
@@ -10,15 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ gtk2 libsndfile python ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     homepage = http://lv2plug.in;
     description = "A plugin standard for audio systems";
diff --git a/pkgs/development/libraries/audio/lvtk/default.nix b/pkgs/development/libraries/audio/lvtk/default.nix
index c74c8caa23fd..b6203a159e6c 100644
--- a/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/pkgs/development/libraries/audio/lvtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, gtkmm2, lv2, pkgconfig, python }:
+{ stdenv, fetchurl, boost, gtkmm2, lv2, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "lvtk-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd";
   };
 
-  nativeBuildInputs = [ pkgconfig python ];
+  nativeBuildInputs = [ pkgconfig python wafHook ];
   buildInputs = [ boost gtkmm2 lv2 ];
 
   enableParallelBuilding = true;
@@ -19,15 +19,10 @@ stdenv.mkDerivation rec {
     sed -i '/target[ ]*= "ttl2c"/ ilib=["boost_system"],' tools/wscript_build
   '';
 
-  configurePhase = ''
-    python waf configure --prefix=$out \
-      --boost-includes="${boost.dev}/include" \
-      --boost-libs="${boost.out}/lib"
-  '';
-
-  buildPhase = "python waf";
-
-  installPhase = "python waf install";
+  configureFlags = [
+    "--boost-includes=${boost.dev}/include"
+    "--boost-libs=${boost.out}/lib"
+  ];
 
   meta = with stdenv.lib; {
     description = "A set C++ wrappers around the LV2 C API";
diff --git a/pkgs/development/libraries/audio/ntk/default.nix b/pkgs/development/libraries/audio/ntk/default.nix
index 6e7cb8d020bd..ddd3940098a4 100644
--- a/pkgs/development/libraries/audio/ntk/default.nix
+++ b/pkgs/development/libraries/audio/ntk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkgconfig, python2 }:
+{ stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkgconfig, python2, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "ntk-${version}";
@@ -10,20 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "0j38mhnfqy6swcrnc5zxcwlqi8b1pgklyghxk6qs1lf4japv2zc0";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
     cairo libjpeg libXft python2
   ];
 
-  buildPhase = ''
-    python waf configure --prefix=$out
-    python waf
-  '';
-
-  installPhase = ''
-    python waf install
-  '';
-
   meta = {
     description = "Fork of FLTK 1.3.0 with additional functionality";
     version = "${version}";
diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix
index 63e3ae36028b..51234a415fd7 100644
--- a/pkgs/development/libraries/audio/raul/default.nix
+++ b/pkgs/development/libraries/audio/raul/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, boost, gtk2, pkgconfig, python }:
+{ stdenv, fetchgit, boost, gtk2, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "raul-unstable-${rev}";
@@ -10,15 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ boost gtk2 python ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     description = "A C++ utility library primarily aimed at audio/musical applications";
     homepage = http://drobilla.net/software/raul;
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index acfbced52720..09a6230184af 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord }:
+{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "sratom-${version}";
@@ -9,15 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "0lz883ravxjf7r9wwbx2gx9m8vhyiavxrl9jdxfppjxnsralll8a";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ lv2 python serd sord ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/sratom;
     description = "A library for serialising LV2 atoms to/from RDF";
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index e29c7b5cb122..10d650d66425 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -1,4 +1,5 @@
 { stdenv, lib, fetchurl, gtk2, lv2, pkgconfig, python, serd, sord, sratom
+, wafHook
 , withQt4 ? true, qt4 ? null
 , withQt5 ? false, qt5 ? null }:
 
@@ -16,17 +17,11 @@ stdenv.mkDerivation rec {
     sha256 = "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ gtk2 lv2 python serd sord sratom ]
     ++ (lib.optionals withQt4 [ qt4 ])
     ++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
 
-  configurePhase = "python waf configure --prefix=$out";
-
-  buildPhase = "python waf";
-
-  installPhase = "python waf install";
-
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/suil;
     description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix
index 012c1d123b62..ad7aff6b5407 100644
--- a/pkgs/development/libraries/boehm-gc/default.nix
+++ b/pkgs/development/libraries/boehm-gc/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   name = "boehm-gc-${version}";
-  version = "7.6.8";
+  version = "8.0.0";
 
   src = fetchurl {
     urls = [
       "http://www.hboehm.info/gc/gc_source/gc-${version}.tar.gz"
       "https://github.com/ivmai/bdwgc/releases/download/v${version}/gc-${version}.tar.gz"
     ];
-    sha256 = "0n720a0i584ghcwmdsjiq6bl9ig0p9mrja29rp4cgsqvpz6wa2h4";
+    sha256 = "014gjv3f1qycsv5yh3fyhvrvsig60yc288pipzr0ml4312igj8wg";
   };
 
   buildInputs = [ libatomic_ops ];
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 099d02c82639..efe7a5820b53 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -2,23 +2,14 @@
 
 let self =
 stdenv.mkDerivation rec {
-  name = "c-ares-1.14.0";
+  name = "c-ares-1.15.0";
 
   src = fetchurl {
     url = "https://c-ares.haxx.se/download/${name}.tar.gz";
-    sha256 = "0vnwmbvymw677k780kpb6sb8i3szdp89rzy8mz1fwg1657yw3ls5";
+    sha256 = "0lk8knip4xk6qzksdkn7085mmgm4ixfczdyyjw656c193y3rgnvc";
   };
 
-  configureFlags = if stdenv.hostPlatform.isWindows then [ "--disable-shared" "--enable-static" ] else null;
-
-  # ares_android.h header is missing
-  # see issue https://github.com/c-ares/c-ares/issues/216
-  postPatch = if stdenv.hostPlatform.isAndroid then ''
-    cp ${fetchurl {
-      url = "https://raw.githubusercontent.com/c-ares/c-ares/cares-1_14_0/ares_android.h";
-      sha256 = "1aw8y6r5c8zq6grjwf4mcm2jj35r5kgdklrp296214s1f1827ps8";
-    }} ares_android.h
-  '' else null;
+  configureFlags = stdenv.lib.optionals stdenv.hostPlatform.isWindows [ "--disable-shared" "--enable-static" ];
 
   meta = with stdenv.lib; {
     description = "A C library for asynchronous DNS requests";
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 7c0664533b8f..8f7a04cbb68f 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -10,14 +10,14 @@
 assert glSupport -> libGL != null;
 
 let
-  version = "1.15.14";
+  version = "1.16.0";
   inherit (stdenv.lib) optional optionals;
 in stdenv.mkDerivation rec {
   name = "cairo-${version}";
 
   src = fetchurl {
     url = "https://cairographics.org/${if stdenv.lib.mod (builtins.fromJSON (stdenv.lib.versions.minor version)) 2 == 0 then "releases" else "snapshots"}/${name}.tar.xz";
-    sha256 = "1399jfdpdhn4hf812hxlj1gyi3bznxwzhp2rnyq1nxjs05n6nmhn";
+    sha256 = "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/eccodes/default.nix b/pkgs/development/libraries/eccodes/default.nix
index 23d20f418c30..57a55cfc39b9 100644
--- a/pkgs/development/libraries/eccodes/default.nix
+++ b/pkgs/development/libraries/eccodes/default.nix
@@ -6,11 +6,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "eccodes-${version}";
-  version = "2.9.0";
+  version = "2.9.2";
 
   src = fetchurl {
     url = "https://confluence.ecmwf.int/download/attachments/45757960/eccodes-${version}-Source.tar.gz";
-    sha256 = "1mh9zkfb5dj3j8fk3gdhz2bp6z13nik5pmynpf5l6qy3lhgyn17z";
+    sha256 = "18gjzhz7bkibc34a0djq1r4b2y3hpn7ym0zs0nj07yq58v4pdx08";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index fbe947e3afb1..6c535c3b51f3 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, enableShared ? true }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, enableShared ? true }:
 
 stdenv.mkDerivation rec {
   version = "5.2.1";
@@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "1cd8yq8va457iir1hlf17ksx11fx2hlb8i4jml8gj1875pizm0pk";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/fmtlib/fmt/commit/9d0c9c4bb145a286f725cd38c90331eee7addc7f.patch";
+      sha256 = "1gy93mb1s1mq746kxj4c564k2mppqp5khqdfa6im88rv29cvrl4y";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index 536859bc4b34..03324d548991 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   name = "freetds-${version}";
-  version = "1.00.94";
+  version = "1.00.104";
 
   src = fetchurl {
     url    = "http://www.freetds.org/files/stable/${name}.tar.bz2";
-    sha256 = "1r03ns0jp2sbbivys5bks376vbdqbnx8v764kjh74gpbajjmkksz";
+    sha256 = "0mlg027mppv2348f4wwdpxpac9baqkdsg7xqx21kyx5dx5kmr71g";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix
index 5a21af6a2b33..58356f0bc676 100644
--- a/pkgs/development/libraries/ganv/default.nix
+++ b/pkgs/development/libraries/ganv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkgconfig, python }:
+{ stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "ganv-unstable-${rev}";
@@ -10,15 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ graphviz gtk2 gtkmm2 python ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     description = "An interactive Gtk canvas widget for graph-based interfaces";
     homepage = http://drobilla.net;
diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh
index 233845c6541f..5275529991f7 100644
--- a/pkgs/development/libraries/glib/setup-hook.sh
+++ b/pkgs/development/libraries/glib/setup-hook.sh
@@ -9,7 +9,7 @@ addEnvHooks "$hostOffset" make_glib_find_gsettings_schemas
 
 # Install gschemas, if any, in a package-specific directory
 glibPreInstallPhase() {
-  installFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/")
+  makeFlagsArray+=("gsettingsschemadir=${!outputLib}/share/gsettings-schemas/$name/glib-2.0/schemas/")
 }
 preInstallPhases+=" glibPreInstallPhase"
 
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index b77c450bdec1..042f5ca90bae 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -133,9 +133,7 @@ stdenv.mkDerivation ({
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ bison ];
-  # TODO make linuxHeaders unconditional next mass rebuild
-  buildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) linuxHeaders
-    ++ lib.optionals withGd [ gd libpng ];
+  buildInputs = [ linuxHeaders ] ++ lib.optionals withGd [ gd libpng ];
 
   # Needed to install share/zoneinfo/zone.tab.  Set to impure /bin/sh to
   # prevent a retained dependency on the bootstrap tools in the stdenv-linux
diff --git a/pkgs/development/libraries/granite/default.nix b/pkgs/development/libraries/granite/default.nix
index 6892ea6364d7..ae2decb68acc 100644
--- a/pkgs/development/libraries/granite/default.nix
+++ b/pkgs/development/libraries/granite/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "5.2.0";
+  version = "5.2.1";
 
   name = "${pname}-${version}";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1v1yhz6rp616xi417m9r8072s6mpz5i8vkdyj264b73p0lgjwh40";
+    sha256 = "18rw1lv6zk5w2cq8bv6b869z3cdikn9gzk30gw1s9f8n06bh737h";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 3f030b7469e1..5d9c03b19190 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, fetchpatch, meson, ninja, gettext
-, pkgconfig, python, gst-plugins-base, orc
+, pkgconfig, python3, gst-plugins-base, orc
 , faacSupport ? false, faac ? null
 , faad2, libass, libkate, libmms, librdf, ladspaH
 , libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom
@@ -18,7 +18,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gst-plugins-bad-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Bad Plugins";
@@ -54,12 +54,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
-    sha256 = "1bqy3dn7q4kdkd4lqznyly8fv854d0hhncv88jk6ai4rf3dbgyil";
+    sha256 = "1r8dma3x127rbx42yab7kwq7q1bhkmvz2ykn0rnqnzl95q74w2wi";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig python gettext ];
+  nativeBuildInputs = [ meson ninja pkgconfig python3 gettext ];
 
   buildInputs = [
     gst-plugins-base orc
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index a5f8e3406423..c67526fb712d 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, lib
 , pkgconfig, meson, ninja, gettext, gobjectIntrospection
-, python, gstreamer, orc, pango, libtheora
+, python3, gstreamer, orc, pango, libtheora
 , libintl, libopus
 , enableX11 ? stdenv.isLinux, libXv
 , enableWayland ? stdenv.isLinux, wayland
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-plugins-base-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib; {
     description = "Base plugins and helper libraries";
@@ -22,12 +22,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
-    sha256 = "0z0wy0p0nxxqhsis3n517d6ykldm02g7rca9fhq9kxb9m05yidx4";
+    sha256 = "0qbllw4kphchwhy4p7ivdysigx69i97gyw6q0rvkx1j81r4kjqfa";
   };
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig python gettext gobjectIntrospection ]
+  nativeBuildInputs = [ pkgconfig python3 gettext gobjectIntrospection ]
 
   # Broken meson with Darwin. Should hopefully be fixed soon. Tracking
   # in https://bugzilla.gnome.org/show_bug.cgi?id=781148.
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index b4a324d68d96..c1f2b2f006c3 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "gstreamer-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib ;{
     description = "Open source multimedia framework";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
-    sha256 = "029fi3v0vrravysgfwhfkrb3ndg64sjmigbb0iwr7wpkk5r15mjb";
+    sha256 = "1izzhnlsy83rgr4zl3jcl1sryxqbbigrrqw3j4x3nnphqnb6ckzr";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index d2c3cbcc6ac3..56d17b49cbbb 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -5,7 +5,7 @@
 
 stdenv.mkDerivation rec {
   name = "gstreamer-editing-services-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Library for creation of audio/video non-linear editors";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz";
-    sha256 = "0d0zqvgxp51mmffz5vvscsdzqqw9mjsv6bnk6ivg2dxnkv8q1ch5";
+    sha256 = "0pxk65jib3mqszjkyvlzklwia4kbdj6j2b6jw1d502b06mdx5lak";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 45f700e158a9..d4e7b8c5da42 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -16,7 +16,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gst-plugins-good-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer Good Plugins";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
-    sha256 = "1bfa4n6xhr4v4wga8pv1y00rm1aka498snw6kgszy2w624l5wmy0";
+    sha256 = "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index f78015704fce..7f7393bba28e 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -10,7 +10,7 @@ assert withSystemLibav -> libav != null;
 
 stdenv.mkDerivation rec {
   name = "gst-libav-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = {
     homepage = https://gstreamer.freedesktop.org;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
-    sha256 = "1pknqpjxq1l3vlprdsmxxwk0lwqa555fqd543k9vphngqlwiqdca";
+    sha256 = "1nk5g24z2xx5kaw5cg8dv8skdc516inahmkymcz8bxqxj28qbmyz";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 4166f357cdaa..624b967765cd 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-rtsp-server-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with stdenv.lib; {
     description = "Gstreamer RTSP server";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-rtsp-server/${name}.tar.xz";
-    sha256 = "161c49hg21xpkdw5ppc7ljbg6kyslxd1y3v1shsg7ibarxapff7p";
+    sha256 = "1wc4d0y57hpfvv9sykjg8mxj86dw60mf696fbqbiqq6dzlmcw3ix";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index b5256bf4b4c7..6bc2ea8af896 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-plugins-ugly-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = with lib; {
     description = "Gstreamer Ugly Plugins";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
-    sha256 = "0s9xrz8knfv06fj1nbv3iq4xj7dj4cnzj3xvgb7zs89rv7crgq2m";
+    sha256 = "08vd1xgwmapnviah47zv5h2r02qdd20y4f07rvv5zhv6y4vxh0mc";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index be7ee8f12787..e84f8dce9125 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "gst-vaapi-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   src = fetchurl {
     url = "${meta.homepage}/src/gstreamer-vaapi/gstreamer-vaapi-${version}.tar.xz";
-    sha256 = "12hdyfma2lnfj38dj6y891vsxnxrlbqjbd36xx13mgasgzi6843z";
+    sha256 = "18yha6119v7mwz47idv2vykzfssqfmh6hc824wqqsshwjvzdn66f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/validate/default.nix b/pkgs/development/libraries/gstreamer/validate/default.nix
index 63893bbc523e..abcdd0b9305e 100644
--- a/pkgs/development/libraries/gstreamer/validate/default.nix
+++ b/pkgs/development/libraries/gstreamer/validate/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   name = "gst-validate-${version}";
-  version = "1.14.2";
+  version = "1.14.4";
 
   meta = {
     description = "Integration testing infrastructure for the GStreamer framework";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/gst-validate/${name}.tar.xz";
-    sha256 = "17zilvmwv13l6rbj0a7dnbg4kz5bwwa1gshaibpqbvvhahz457pa";
+    sha256 = "1ismv4i7ldi04swq76pcpd5apxqd52yify5hvlyan2yw9flwrp0q";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 130bc6f97bf0..7a7624c96753 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -8,7 +8,7 @@
 }:
 
 let
-  version = "1.9.0";
+  version = "2.1.0";
   inherit (stdenv.lib) optional optionals optionalString;
 in
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
-    sha256 = "004b4j812wgfv8pmcypyrlwrjfa6149lwpz5df6rnm5cy0msdv0i";
+    sha256 = "1y8jzm76wj8pcj3z47fikhasipyizd6w9r20yc7p139jqxp4jnwf";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index edb1dc01aa80..db7dab1b6a7d 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "hpx-${version}";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = "${version}";
-    sha256 = "0xlhnycmpy2jgiqyzpwmkdrl6drf46ywdsl0qm4vksvjxqfgk9z3";
+    sha256 = "1rliv42glns60bpmmvmgrglgmii42p8bmji349r6mr68f48iv4dx";
   };
 
   buildInputs = [ boost hwloc gperftools ];
diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 18b42ea4b4fa..2576580908a3 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -5,11 +5,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "imlib2-1.5.0";
+  name = "imlib2-1.5.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${name}.tar.bz2";
-    sha256 = "0kg28b5wp886hiy12v7abdybrvlymb7g3nvg0ysn2y8h883s5w8m";
+    sha256 = "1bms2iwmvnvpz5jqq3r52glarqkafif47zbh1ykz8hw85d2mfkps";
   };
 
   buildInputs = [ libjpeg libtiff giflib libpng bzip2 freetype libid3tag ]
diff --git a/pkgs/development/libraries/isl/0.12.2.nix b/pkgs/development/libraries/isl/0.12.2.nix
deleted file mode 100644
index 880f91fccedc..000000000000
--- a/pkgs/development/libraries/isl/0.12.2.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, gmp }:
-
-stdenv.mkDerivation rec {
-  name = "isl-0.12.2"; # CLooG 0.16.3 fails to build with ISL 0.08.
-
-  src = fetchurl {
-    url = "http://isl.gforge.inria.fr/${name}.tar.bz2";
-    sha256 = "1d0zs64yw6fzs6b7kxq6nh9kvas16h8b43agwh30118jjzpdpczl";
-  };
-
-  buildInputs = [ gmp ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = https://www.kotnet.org/~skimo/isl/;
-    license = stdenv.lib.licenses.lgpl21;
-    description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/isl/0.15.0.nix b/pkgs/development/libraries/isl/0.20.0.nix
index 8b6080c2880a..72ef581725b9 100644
--- a/pkgs/development/libraries/isl/0.15.0.nix
+++ b/pkgs/development/libraries/isl/0.20.0.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gmp }:
 
 stdenv.mkDerivation rec {
-  name = "isl-0.15";
+  name = "isl-0.20";
 
   src = fetchurl {
     url = "http://isl.gforge.inria.fr/${name}.tar.xz";
-    sha256 = "1m922l5bz69lvkcxrib7lvjqwfqsr8rpbzgmb2aq07bp76460jhh";
+    sha256 = "1akpgq0rbqbah5517blg2zlnfvjxfcl9cjrfc75nbcx5p2gnlnd5";
   };
 
   buildInputs = [ gmp ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    homepage = https://www.kotnet.org/~skimo/isl/;
+    homepage = http://isl.gforge.inria.fr/;
     license = stdenv.lib.licenses.lgpl21;
     description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/java/jflex/default.nix b/pkgs/development/libraries/java/jflex/default.nix
index 6947536fafb7..1bc918af8352 100644
--- a/pkgs/development/libraries/java/jflex/default.nix
+++ b/pkgs/development/libraries/java/jflex/default.nix
@@ -1,21 +1,31 @@
-{stdenv, fetchurl} :
+{stdenv, fetchurl, jre} :
 
 stdenv.mkDerivation rec {
-  name = "jflex-1.6.1";
+  name = "jflex-1.7.0";
 
   src = fetchurl {
-    url = "http://jflex.de/${name}.tar.gz";
-    sha256 = "1h7q2vhb4s42g4pqz5xxxliagprray7i9krr6hyaz1mjlx7gnycq";
+    url = "http://jflex.de/release/${name}.tar.gz";
+    sha256 = "1k7bqw1mn569g9dxc0ia3yz1bzgzs5w52lh1xn3hgj7k5ymh54kk";
   };
 
   sourceRoot = name;
 
-  phases = [ "unpackPhase" "installPhase" ];
-
   installPhase = ''
+    runHook preInstall
     mkdir -p $out
     cp -a * $out
+    rm -f $out/bin/jflex.bat
+
     patchShebangs $out
+    sed -i -e '/^JAVA=java/ s#java#${jre}/bin/java#' $out/bin/jflex
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/jflex --version
+    runHook postInstallCheck
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 761216f420bb..3d236ab5851a 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, valgrind-light }:
 
 stdenv.mkDerivation rec {
-  name = "libdrm-2.4.94";
+  name = "libdrm-2.4.96";
 
   src = fetchurl {
     url = "https://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "1ghn3l1dv1rsp9z6jpmy4ryna1s8rm4xx0ds532041bnlfq5jg5p";
+    sha256 = "14xkip83qgljjaahzq40qgl60j54q7k00la1hbf5kk5lgg7ilmhd";
   };
 
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index d8708114c8e6..6912817419f6 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -6,11 +6,11 @@ assert enableCapabilities -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   name = "libgcrypt-${version}";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha256 = "0z5gs1khzyknyfjr19k8gk4q148s6q987ya85cpn0iv70fz91v36";
+    sha256 = "09r27ywj9zplq6n9qw3mn7zmvf6y2jdmwx5d1kg8yqkj0qx18f7n";
   };
 
   outputs = [ "out" "dev" "info" ];
@@ -21,9 +21,6 @@ stdenv.mkDerivation rec {
   # The build enables -O2 by default for everything else.
   hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
 
-  # Accepted upstream, should be in next update: #42150, https://dev.gnupg.org/T4034
-  patches = [ ./fix-jent-locking.patch ];
-
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = [ libgpgerror ]
diff --git a/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch b/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch
deleted file mode 100644
index 5394e51468e6..000000000000
--- a/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From bbe989be6ca5e093d5244413590bd80e12c2ec9b Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Sun, 17 Jun 2018 18:53:58 -0500
-Subject: [PATCH] rndjent: move locking to fix trying to obtain held lock,
- hanging
-
----
- random/rndjent.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/random/rndjent.c b/random/rndjent.c
-index 0c5a820b..3740ddd4 100644
---- a/random/rndjent.c
-+++ b/random/rndjent.c
-@@ -334,9 +334,10 @@ _gcry_rndjent_get_version (int *r_active)
-     {
-       if (r_active)
-         {
--          lock_rng ();
-           /* Make sure the RNG is initialized.  */
-           _gcry_rndjent_poll (NULL, 0, 0);
-+
-+          lock_rng ();
-           /* To ease debugging we store 2 for a clock_gettime based
-            * implementation and 1 for a rdtsc based code.  */
-           *r_active = jent_rng_collector? is_rng_available () : 0;
--- 
-2.18.0-rc2
-
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index f91fa192c034..766c0dcf00ed 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "librealsense-${version}";
-  version = "2.16.1";
+  version = "2.16.4";
 
   src = fetchFromGitHub {
     owner = "IntelRealSense";
     repo = "librealsense";
     rev = "v${version}";
-    sha256 = "0vs2vcfmsb574bvdqrfgdmam0p631c738apk0w9mjdqk59zy1bz2";
+    sha256 = "0664lsdw9a3s3apqiv9kkzfnz86ai9wdc8y00qyxrmxq9lpjsq11";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index 1ec15e88f13d..e67ecea07764 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -1,23 +1,13 @@
 { stdenv, fetchurl, fetchpatch, pkgconfig, cmake, zlib, openssl, libsodium }:
 
 stdenv.mkDerivation rec {
-  name = "libssh-0.7.6";
+  name = "libssh-0.8.4";
 
   src = fetchurl {
-    url = "https://www.libssh.org/files/0.7/libssh-0.7.6.tar.xz";
-    sha256 = "14hhdpn2hflywsi9d5bz2pfjxqkyi07znjij89cpakr7b4w7sq0x";
+    url = "https://www.libssh.org/files/0.8/${name}.tar.xz";
+    sha256 = "06xqfm1alfb6faqzjhyhjs0arjcd8rnc7ci046x8d18s089pgc3b";
   };
 
-  patches = [
-    # Fix mysql-workbench compilation
-    # https://bugs.mysql.com/bug.php?id=91923
-    (fetchpatch {
-      name = "include-fix-segfault-in-getissuebanner-add-missing-wrappers-in-libsshpp.patch";
-      url = https://git.libssh.org/projects/libssh.git/patch/?id=5ea81166bf885d0fd5d4bb232fc22633f5aaf3c4;
-      sha256 = "12q818l3nasqrfrsghxdvjcyya1bfcg0idvsf8xwm5zj7criln0a";
-    })
-  ];
-
   postPatch = ''
     # Fix headers to use libsodium instead of NaCl
     sed -i 's,nacl/,sodium/,g' ./include/libssh/curve25519.h src/curve25519.c
diff --git a/pkgs/development/libraries/libversion/default.nix b/pkgs/development/libraries/libversion/default.nix
index 6ca7b11321ba..0ace54582ebc 100644
--- a/pkgs/development/libraries/libversion/default.nix
+++ b/pkgs/development/libraries/libversion/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, cmake }:
 
 let
-  version = "2.7.0";
+  version = "2.8.1";
 in
 stdenv.mkDerivation {
   name = "libversion-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     owner = "repology";
     repo = "libversion";
     rev = version;
-    sha256 = "0brk2mbazc7yz0h4zsvbybbaymf497dgxnc74qihnvbi4z4rlqpj";
+    sha256 = "0h0yfcgxll09dckzjb1im3yf54cjkpsflr7r4kwz1jcr3fxq41fz";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index 67563e41d01f..6cfc5060b610 100644
--- a/pkgs/development/libraries/libwacom/default.nix
+++ b/pkgs/development/libraries/libwacom/default.nix
@@ -1,15 +1,17 @@
-{ fetchurl, stdenv, glib, pkgconfig, udev, libgudev }:
+{ stdenv, fetchFromGitHub, autoreconfHook, glib, pkgconfig, udev, libgudev }:
 
 stdenv.mkDerivation rec {
   name = "libwacom-${version}";
-  version = "0.29";
+  version = "0.31";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/linuxwacom/libwacom/${name}.tar.bz2";
-    sha256 = "1diklgcjhmvcxi9p1ifp6wcnyr6k7z9jhrlzfhzjqd6zipk01slw";
+  src = fetchFromGitHub {
+    owner = "linuxwacom";
+    repo = "libwacom";
+    rev = "libwacom-${version}";
+    sha256 = "0qjd4bn2abwzic34cm0sw3srx02spszbsvfdbzbpn2cb62b5gjmw";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ glib udev libgudev ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 693260af1c76..0c88cff77732 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   # a distinct dev output makes python-mapnik fail
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ python scons ];
+  nativeBuildInputs = [ python ];
 
   buildInputs =
     [ boost cairo freetype gdal harfbuzz icu libjpeg libpng libtiff
@@ -29,40 +29,35 @@ stdenv.mkDerivation rec {
       postgresql
     ];
 
-  configurePhase = ''
-    scons configure PREFIX="$out" BOOST_INCLUDES="${boost.dev}/include" \
-                                  BOOST_LIBS="${boost.out}/lib" \
-                                  CAIRO_INCLUDES="${cairo.dev}/include" \
-                                  CAIRO_LIBS="${cairo.out}/lib" \
-                                  FREETYPE_INCLUDES="${freetype.dev}/include" \
-                                  FREETYPE_LIBS="${freetype.out}/lib" \
-                                  GDAL_CONFIG="${gdal}/bin/gdal-config" \
-                                  HB_INCLUDES="${harfbuzz.dev}/include" \
-                                  HB_LIBS="${harfbuzz.out}/lib" \
-                                  ICU_INCLUDES="${icu.dev}/include" \
-                                  ICU_LIBS="${icu.out}/lib" \
-                                  JPEG_INCLUDES="${libjpeg.dev}/include" \
-                                  JPEG_LIBS="${libjpeg.out}/lib" \
-                                  PNG_INCLUDES="${libpng.dev}/include" \
-                                  PNG_LIBS="${libpng.out}/lib" \
-                                  PROJ_INCLUDES="${proj}/include" \
-                                  PROJ_LIBS="${proj}/lib" \
-                                  SQLITE_INCLUDES="${sqlite.dev}/include" \
-                                  SQLITE_LIBS="${sqlite.out}/lib" \
-                                  TIFF_INCLUDES="${libtiff.dev}/include" \
-                                  TIFF_LIBS="${libtiff.out}/lib" \
-                                  WEBP_INCLUDES="${libwebp}/include" \
-                                  WEBP_LIBS="${libwebp}/lib" \
-                                  XML2_INCLUDES="${libxml2.dev}/include" \
-                                  XML2_LIBS="${libxml2.out}/lib"
-  '';
+  prefixKey = "PREFIX=";
 
-  buildPhase = false;
-
-  installPhase = ''
-    mkdir -p "$out"
-    scons install
-  '';
+  configureFlags = [
+    "BOOST_INCLUDES=${boost.dev}/include"
+    "BOOST_LIBS=${boost.out}/lib"
+    "CAIRO_INCLUDES=${cairo.dev}/include"
+    "CAIRO_LIBS=${cairo.out}/lib"
+    "FREETYPE_INCLUDES=${freetype.dev}/include"
+    "FREETYPE_LIBS=${freetype.out}/lib"
+    "GDAL_CONFIG=${gdal}/bin/gdal-config"
+    "HB_INCLUDES=${harfbuzz.dev}/include"
+    "HB_LIBS=${harfbuzz.out}/lib"
+    "ICU_INCLUDES=${icu.dev}/include"
+    "ICU_LIBS=${icu.out}/lib"
+    "JPEG_INCLUDES=${libjpeg.dev}/include"
+    "JPEG_LIBS=${libjpeg.out}/lib"
+    "PNG_INCLUDES=${libpng.dev}/include"
+    "PNG_LIBS=${libpng.out}/lib"
+    "PROJ_INCLUDES=${proj}/include"
+    "PROJ_LIBS=${proj}/lib"
+    "SQLITE_INCLUDES=${sqlite.dev}/include"
+    "SQLITE_LIBS=${sqlite.out}/lib"
+    "TIFF_INCLUDES=${libtiff.dev}/include"
+    "TIFF_LIBS=${libtiff.out}/lib"
+    "WEBP_INCLUDES=${libwebp}/include"
+    "WEBP_LIBS=${libwebp}/lib"
+    "XML2_INCLUDES=${libxml2.dev}/include"
+    "XML2_LIBS=${libxml2.out}/lib"
+  ];
 
   meta = with stdenv.lib; {
     description = "An open source toolkit for developing mapping applications";
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index fe88b26acc13..7b5c0b3144b3 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -67,7 +67,7 @@ let
 in
 
 let
-  version = "18.2.2";
+  version = "18.2.4";
   branch  = head (splitString "." version);
 in
 
@@ -81,7 +81,7 @@ let self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
       "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz"
     ];
-    sha256 = "1i3ky3d210vi3f5hlr9la1kspdyv093npndxsbzdklw95aqq5fn3";
+    sha256 = "0knbr6nl7qk5bijz6p7yqr8fc806gvmz9p6jlnvdaxkqnpmil7b2";
   };
 
   prePatch = "patchShebangs .";
diff --git a/pkgs/development/libraries/mesa/disk_cache-include-dri-driver-path-in-cache-key.patch b/pkgs/development/libraries/mesa/disk_cache-include-dri-driver-path-in-cache-key.patch
index 47391567fb9b..37813db89347 100644
--- a/pkgs/development/libraries/mesa/disk_cache-include-dri-driver-path-in-cache-key.patch
+++ b/pkgs/development/libraries/mesa/disk_cache-include-dri-driver-path-in-cache-key.patch
@@ -1,4 +1,4 @@
-From 9c9df280b318c26aece9873cf77b32e4f95634c1 Mon Sep 17 00:00:00 2001
+From 2a1e32b4105fe95413a615a44d40938920ea1a19 Mon Sep 17 00:00:00 2001
 From: David McFarland <corngood@gmail.com>
 Date: Mon, 6 Aug 2018 15:52:11 -0300
 Subject: [PATCH] disk_cache: include dri driver path in cache key
@@ -11,10 +11,10 @@ timestamps in /nix/store are zero.
  2 files changed, 6 insertions(+)
 
 diff --git a/src/util/Makefile.am b/src/util/Makefile.am
-index 07bf052175..aea09f60b3 100644
+index bafb57439a..a22e2e41eb 100644
 --- a/src/util/Makefile.am
 +++ b/src/util/Makefile.am
-@@ -30,6 +30,9 @@ noinst_LTLIBRARIES = \
+@@ -35,6 +35,9 @@ noinst_LTLIBRARIES = \
  	libmesautil.la \
  	libxmlconfig.la
  
@@ -25,28 +25,28 @@ index 07bf052175..aea09f60b3 100644
  	$(PTHREAD_CFLAGS) \
  	-I$(top_srcdir)/include
 diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
-index 4a762eff20..8086c0be75 100644
+index 368ec41792..071220b2ba 100644
 --- a/src/util/disk_cache.c
 +++ b/src/util/disk_cache.c
-@@ -388,8 +388,10 @@ disk_cache_create(const char *gpu_name, const char *timestamp,
+@@ -388,8 +388,10 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
  
     /* Create driver id keys */
-    size_t ts_size = strlen(timestamp) + 1;
+    size_t id_size = strlen(driver_id) + 1;
 +   size_t key_size = strlen(DISK_CACHE_KEY) + 1;
     size_t gpu_name_size = strlen(gpu_name) + 1;
-    cache->driver_keys_blob_size += ts_size;
+    cache->driver_keys_blob_size += id_size;
 +   cache->driver_keys_blob_size += key_size;
     cache->driver_keys_blob_size += gpu_name_size;
  
     /* We sometimes store entire structs that contains a pointers in the cache,
-@@ -410,6 +412,7 @@ disk_cache_create(const char *gpu_name, const char *timestamp,
+@@ -410,6 +412,7 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
     uint8_t *drv_key_blob = cache->driver_keys_blob;
     DRV_KEY_CPY(drv_key_blob, &cache_version, cv_size)
-    DRV_KEY_CPY(drv_key_blob, timestamp, ts_size)
+    DRV_KEY_CPY(drv_key_blob, driver_id, id_size)
 +   DRV_KEY_CPY(drv_key_blob, DISK_CACHE_KEY, key_size)
     DRV_KEY_CPY(drv_key_blob, gpu_name, gpu_name_size)
     DRV_KEY_CPY(drv_key_blob, &ptr_size, ptr_size_size)
     DRV_KEY_CPY(drv_key_blob, &driver_flags, driver_flags_size)
 -- 
-2.18.0
+2.19.1
 
diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix
index b5188cb66d29..849da2e6cad5 100644
--- a/pkgs/development/libraries/movit/default.nix
+++ b/pkgs/development/libraries/movit/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchurl, SDL, eigen, epoxy, fftw, gtest, pkgconfig }:
+{ stdenv, fetchurl, SDL2, eigen, epoxy, fftw, gtest, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "movit-${version}";
-  version = "1.5.1";
+  version = "1.6.2";
 
   src = fetchurl {
     url = "https://movit.sesse.net/${name}.tar.gz";
-    sha256 = "1259iq2ixiprk4mn7ypapinbg2w1sjq1aivzzbbch9i23kcfsd44";
+    sha256 = "1q9h086v6h3da4b9qyflcjx73cgnqjhb92rv6g4j90m34dndaa3l";
   };
 
   outputs = [ "out" "dev" ];
 
-  GTEST_DIR = "${gtest}";
+  GTEST_DIR = "${gtest.src}/googletest";
 
   propagatedBuildInputs = [ eigen epoxy ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL fftw gtest ];
+  buildInputs = [ SDL2 fftw gtest ];
+
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     description = "High-performance, high-quality video filters for the GPU";
diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix
index a8d7f654a9ff..923bc61f67da 100644
--- a/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/pkgs/development/libraries/ndn-cxx/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, openssl, doxygen, boost, sqlite, pkgconfig, python, pythonPackages }:
+{ stdenv, fetchFromGitHub, openssl, doxygen
+, boost, sqlite, pkgconfig, python, pythonPackages, wafHook }:
 let
   version = "0.6.3";
 in
@@ -10,22 +11,13 @@ stdenv.mkDerivation {
     rev = "a3bf4319ed483a4a6fe2c96b79ec4491d7217f00";
     sha256 = "076jhrjigisqz5n8dgxwd5fhimg69zhm834m7w9yvf9afgzrr50h";
   };
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ openssl doxygen boost sqlite python pythonPackages.sphinx];
-  preConfigure = ''
-    patchShebangs waf
-    ./waf configure \
-      --prefix=$out \
-      --with-openssl=${openssl.dev} \
-      --boost-includes=${boost.dev}/include \
-      --boost-libs=${boost.out}/lib
-  '';
-  buildPhase = ''
-    ./waf
-  '';
-  installPhase = ''
-    ./waf install
-  '';
+  configureFlags = [
+    "--with-openssl=${openssl.dev}"
+    "--boost-includes=${boost.dev}/include"
+    "--boost-libs=${boost.out}/lib"
+  ];
   meta = with stdenv.lib; {
     homepage = http://named-data.net/;
     description = "A Named Data Neworking (NDN) or Content Centric Networking (CCN) abstraction";
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 471684ea7ddc..d4c859db2899 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -18,13 +18,15 @@ let inherit (stdenv.lib) optional; in
 
 stdenv.mkDerivation rec {
   name = "nghttp2-${version}";
-  version = "1.32.0";
+  version = "1.34.0";
 
   src = fetchurl {
     url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
-    sha256 = "0jlndbp4bnyvdg8b59pznrzz0bvwb9nmag7zgcflg51lm1pq2q06";
+    sha256 = "1l5rir8d73x97p3p1x4l8cawjc9m2adnippnb27fmrbcd3rfaxbl";
   };
 
+  patches = [ ./fix-stream-operator.patch /* can't fetchpatch during bootstrap */ ];
+
   outputs = [ "bin" "out" "dev" "lib" ];
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/nghttp2/fix-stream-operator.patch b/pkgs/development/libraries/nghttp2/fix-stream-operator.patch
new file mode 100644
index 000000000000..7d8acde8ebc8
--- /dev/null
+++ b/pkgs/development/libraries/nghttp2/fix-stream-operator.patch
@@ -0,0 +1,63 @@
+From 153531d4d0ebe00ac95047dbf1fec1d9d694f29f Mon Sep 17 00:00:00 2001
+From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
+Date: Sun, 7 Oct 2018 22:19:00 +0900
+Subject: [PATCH] nghttpx: Use the same type as standard stream operator<<
+
+---
+ src/shrpx_log.cc |  4 ++--
+ src/shrpx_log.h  | 20 ++++++++++++++------
+ 2 files changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/src/shrpx_log.cc b/src/shrpx_log.cc
+index 8459d15e3..6966cf945 100644
+--- a/src/shrpx_log.cc
++++ b/src/shrpx_log.cc
+@@ -228,7 +228,7 @@ Log &Log::operator<<(const ImmutableString &s) {
+   return *this;
+ }
+ 
+-Log &Log::operator<<(int64_t n) {
++Log &Log::operator<<(long long n) {
+   if (n >= 0) {
+     return *this << static_cast<uint64_t>(n);
+   }
+@@ -262,7 +262,7 @@ Log &Log::operator<<(int64_t n) {
+   return *this;
+ }
+ 
+-Log &Log::operator<<(uint64_t n) {
++Log &Log::operator<<(unsigned long long n) {
+   if (flags_ & fmt_hex) {
+     write_hex(n);
+     return *this;
+diff --git a/src/shrpx_log.h b/src/shrpx_log.h
+index 1130b8da8..17b90536e 100644
+--- a/src/shrpx_log.h
++++ b/src/shrpx_log.h
+@@ -100,12 +100,20 @@ class Log {
+   Log &operator<<(const char *s);
+   Log &operator<<(const StringRef &s);
+   Log &operator<<(const ImmutableString &s);
+-  Log &operator<<(int16_t n) { return *this << static_cast<int64_t>(n); }
+-  Log &operator<<(int32_t n) { return *this << static_cast<int64_t>(n); }
+-  Log &operator<<(int64_t n);
+-  Log &operator<<(uint16_t n) { return *this << static_cast<uint64_t>(n); }
+-  Log &operator<<(uint32_t n) { return *this << static_cast<uint64_t>(n); }
+-  Log &operator<<(uint64_t n);
++  Log &operator<<(short n) { return *this << static_cast<long long>(n); }
++  Log &operator<<(int n) { return *this << static_cast<long long>(n); }
++  Log &operator<<(long n) { return *this << static_cast<long long>(n); }
++  Log &operator<<(long long n);
++  Log &operator<<(unsigned short n) {
++    return *this << static_cast<unsigned long long>(n);
++  }
++  Log &operator<<(unsigned int n) {
++    return *this << static_cast<unsigned long long>(n);
++  }
++  Log &operator<<(unsigned long n) {
++    return *this << static_cast<unsigned long long>(n);
++  }
++  Log &operator<<(unsigned long long n);
+   Log &operator<<(float n) { return *this << static_cast<double>(n); }
+   Log &operator<<(double n);
+   Log &operator<<(long double n);
diff --git a/pkgs/development/libraries/ntl/default.nix b/pkgs/development/libraries/ntl/default.nix
index cd3034e86122..12d3c9ad9420 100644
--- a/pkgs/development/libraries/ntl/default.nix
+++ b/pkgs/development/libraries/ntl/default.nix
@@ -14,11 +14,11 @@ assert withGf2x -> gf2x != null;
 
 stdenv.mkDerivation rec {
   name = "ntl-${version}";
-  version = "11.3.1";
+  version = "11.3.2";
 
   src = fetchurl {
     url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
-    sha256 = "08a1v92js13ij6lpf75xkjc8iy2w89igd7hy58abll6wnjj107zs";
+    sha256 = "17bfsvn72zjqfibnxscyf4hbk3inndh4r89jd2zg7mgqmd2k3fl4";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/poker-eval/default.nix b/pkgs/development/libraries/poker-eval/default.nix
deleted file mode 100644
index 51cc72ffd402..000000000000
--- a/pkgs/development/libraries/poker-eval/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{stdenv, fetchurl}:
-
-stdenv.mkDerivation rec {
-  name = "poker-eval-138.0";
-
-  src = fetchurl {
-    url = "http://download.gna.org/pokersource/sources/${name}.tar.gz";
-    sha256 = "0s6gvcdwdi6j7nrg6mmb5l971gclk0p99bcbfsynx1gnj159wrcj";
-  };
-
-  patchPhase = ''
-    sed -i -e 's#pkgincludedir = $(includedir)/@PACKAGE@#pkgincludedir = $(includedir)#g' Makefile.in
-    sed -i -e 's#pkgincludedir = $(includedir)/@PACKAGE@#pkgincludedir = $(includedir)#g' include/Makefile.in
-    sed -i -e 's#includedir=@includedir@/poker-eval#includedir=@includedir@/#g' poker-eval.pc.in
-  '';
-
-  meta = {
-    homepage = http://pokersource.sourceforge.net;
-    description = "Poker hand evaluator";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [stdenv.lib.maintainers.mtreskin];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/protozero/default.nix b/pkgs/development/libraries/protozero/default.nix
index c2d8f5e74c90..74e040e94ab0 100644
--- a/pkgs/development/libraries/protozero/default.nix
+++ b/pkgs/development/libraries/protozero/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "protozero-${version}";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = "protozero";
     rev = "v${version}";
-    sha256 = "0lalk6hp7hqfn4fhhl2zb214idwm4y8dj32vi383arckzmsryhiw";
+    sha256 = "0hcawgyj3wxqikx5xqs1ag12w8vz00gb1rzx131jq51yhzc6bwrb";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index 644b3545916c..528fe5ed0739 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gfortran, openblas, cmake
+{ stdenv, fetchurl, gfortran, openblas, cmake, fixDarwinDylibNames
 , enableCuda  ? false, cudatoolkit
 }:
 
@@ -96,8 +96,11 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ openblas gfortran.cc.lib ] ++ stdenv.lib.optionals enableCuda [cudatoolkit];
+  nativeBuildInputs = [ cmake ]
+    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+
+  buildInputs = [ openblas gfortran.cc.lib ]
+    ++ stdenv.lib.optional enableCuda cudatoolkit;
 
   meta = with stdenv.lib; {
     homepage = http://faculty.cse.tamu.edu/davis/suitesparse.html;
diff --git a/pkgs/development/libraries/science/networking/ns3/default.nix b/pkgs/development/libraries/science/networking/ns3/default.nix
index 632380328db1..d5c3ca2457aa 100644
--- a/pkgs/development/libraries/science/networking/ns3/default.nix
+++ b/pkgs/development/libraries/science/networking/ns3/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , python
+, wafHook
 
 # for binding generation
 , castxml ? null
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
     sha256 = "17kzfjpgw2mvyx1c9bxccnvw67jpk09fxmcnlkqx9xisk10qnhng";
   };
 
+  nativeBuildInputs = [ wafHook ];
   # ncurses is a hidden dependency of waf when checking python
   buildInputs = lib.optionals generateBindings [ castxml ncurses ]
     ++ stdenv.lib.optional enableDoxygen [ doxygen graphviz imagemagick ]
@@ -58,12 +60,9 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ gcc6 pythonEnv ];
 
   postPatch = ''
-    patchShebangs ./waf
     patchShebangs doc/ns3_html_theme/get_version.sh
   '';
 
-  configureScript = "${python.interpreter} ./waf configure";
-
   configureFlags = with stdenv.lib; [
       "--enable-modules=${stdenv.lib.concatStringsSep "," modules}"
       "--with-python=${pythonEnv.interpreter}"
@@ -74,12 +73,9 @@ stdenv.mkDerivation rec {
   ++ optional doCheck " --enable-tests "
   ;
 
-  postBuild = with stdenv.lib; let flags = concatStringsSep ";" (
-      optional enableDoxygen "./waf doxygen"
-      ++ optional withManual "./waf sphinx"
-    );
-    in "${flags}"
-  ;
+  buildTargets = "build"
+    + lib.optionalString enableDoxygen " doxygen"
+    + lib.optionalString withManual "sphinx";
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 67e0ff31c8e5..533fefa9f194 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, python }:
+{ stdenv, fetchurl, pkgconfig, python, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "serd-${version}";
@@ -9,13 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1yyfyvc6kwagi5w43ljp1bbjdvdpmgpds74lmjxycm91bkx0xyvf";
   };
 
-  nativeBuildInputs = [ pkgconfig python ];
-
-  configurePhase = "python waf configure --prefix=$out";
-
-  buildPhase = "python waf";
-
-  installPhase = "python waf install";
+  nativeBuildInputs = [ pkgconfig python wafHook ];
 
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/serd;
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
index f794c3841b93..3fd47125bcb3 100644
--- a/pkgs/development/libraries/serf/default.nix
+++ b/pkgs/development/libraries/serf/default.nix
@@ -9,28 +9,22 @@ stdenv.mkDerivation rec {
     sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ apr scons openssl aprutil zlib libiconv ]
+  nativeBuildInputs = [ pkgconfig scons ];
+  buildInputs = [ apr openssl aprutil zlib libiconv ]
     ++ stdenv.lib.optional (!stdenv.isCygwin) kerberos;
 
   patches = [ ./scons.patch ];
 
-  buildPhase = ''
-    scons \
-      -j $NIX_BUILD_CORES \
-      APR="$(echo ${apr.dev}/bin/*-config)" \
-      APU="$(echo ${aprutil.dev}/bin/*-config)" \
-      CC=$CC \
-      OPENSSL=${openssl} \
-      PREFIX="$out" \
-      ZLIB=${zlib} \
-      ${
-        if stdenv.isCygwin then "" else "GSSAPI=${kerberos.dev}"
-      }
-  '';
+  prefixKey = "PREFIX=";
 
-  installPhase = ''
-    scons install
+  preConfigure = ''
+    sconsFlags+=" APR=$(echo ${apr.dev}/bin/*-config)"
+    sconsFlags+=" APU=$(echo ${aprutil.dev}/bin/*-config)"
+    sconsFlags+=" CC=$CC"
+    sconsFlags+=" OPENSSL=${openssl}"
+    sconsFlags+=" ZLIB=${zlib}"
+  '' + stdenv.lib.optionalString (!stdenv.isCygwin) ''
+    sconsFlags+=" GSSAPI=${kerberos.dev}"
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 465ec5b8fe8b..10258e791ba6 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, python, serd, pcre }:
+{ stdenv, fetchurl, pkgconfig, python, serd, pcre, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "sord-${version}";
@@ -9,15 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "13fshxwpipjrvsah1m2jw1kf022z2q5vpw24bzcznglgvms13x89";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ python serd pcre ];
 
-  configurePhase = "${python.interpreter} waf configure --prefix=$out";
-
-  buildPhase = "${python.interpreter} waf";
-
-  installPhase = "${python.interpreter} waf install";
-
   meta = with stdenv.lib; {
     homepage = http://drobilla.net/software/sord;
     description = "A lightweight C library for storing RDF data in memory";
diff --git a/pkgs/development/libraries/speex/default.nix b/pkgs/development/libraries/speex/default.nix
index 173b460a0ab2..1321a558d5ed 100644
--- a/pkgs/development/libraries/speex/default.nix
+++ b/pkgs/development/libraries/speex/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, fftw, speexdsp }:
 
 stdenv.mkDerivation rec {
-  name = "speex-1.2rc2";
+  name = "speex-1.2.0";
 
   src = fetchurl {
     url = "http://downloads.us.xiph.org/releases/speex/${name}.tar.gz";
-    sha256 = "14g8ph39inkrif749lzjm089g7kwk0hymq1a3i9ch5gz8xr7r8na";
+    sha256 = "150047wnllz4r94whb9r73l5qf0z5z3rlhy98bawfbblmkq8mbpa";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix
index 1759258e6664..c83f5b0f5ac3 100644
--- a/pkgs/development/libraries/swiften/default.nix
+++ b/pkgs/development/libraries/swiften/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, python, fetchurl, openssl, boost }:
+{ stdenv, python, fetchurl, openssl, boost, scons }:
 stdenv.mkDerivation rec {
   name    = "swiften-${version}";
   version = "4.0.2";
 
+  nativeBuildInputs = [ scons];
   buildInputs           = [ python ];
   propagatedBuildInputs = [ openssl boost ];
 
@@ -10,16 +11,17 @@ stdenv.mkDerivation rec {
     url    = "https://swift.im/downloads/releases/swift-${version}/swift-${version}.tar.gz";
     sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w";
   };
-  
-  buildPhase = ''
-    patchShebangs ./scons
-    ./scons openssl=${openssl.dev} \
-            boost_includedir=${boost.dev}/include \
-            boost_libdir=${boost.out}/lib \
-            boost_bundled_enable=false \
-            SWIFTEN_INSTALLDIR=$out $out
+
+  sconsFlags = [
+    "openssl=${openssl.dev}"
+    "boost_includedir=${boost.dev}/include"
+    "boost_libdir=${boost.out}/lib"
+    "boost_bundled_enable=false"
+  ];
+  preInstall = ''
+    installTargets="$out"
+    installFlags+=" SWIFT_INSTALLDIR=$out"
   '';
-  installPhase = "true";
 
   meta = with stdenv.lib; {
     description = "An XMPP library for C++, used by the Swift client";
diff --git a/pkgs/development/libraries/termbox/default.nix b/pkgs/development/libraries/termbox/default.nix
index 0898289978a2..469a6a4c96f9 100644
--- a/pkgs/development/libraries/termbox/default.nix
+++ b/pkgs/development/libraries/termbox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3 }:
+{ stdenv, fetchFromGitHub, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   name = "termbox-${version}";
@@ -9,10 +9,7 @@ stdenv.mkDerivation rec {
     rev = "v${version}";
     sha256 = "08yqxzb8fny8806p7x8a6f3phhlbfqdd7dhkv25calswj7w1ssvs";
   };
-  nativeBuildInputs = [ python3 ];
-  configurePhase = "python3 ./waf configure --prefix=$out";
-  buildPhase = "python3 ./waf build";
-  installPhase = "python3 ./waf install --destdir=$out";
+  nativeBuildInputs = [ python3 wafHook ];
   meta = with stdenv.lib; {
     description = "Library for writing text-based user interfaces";
     license = licenses.mit;
@@ -21,4 +18,3 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ fgaz ];
   };
 }
-
diff --git a/pkgs/development/node-packages/default-v10.nix b/pkgs/development/node-packages/default-v10.nix
index f57659de9a60..64122a435273 100644
--- a/pkgs/development/node-packages/default-v10.nix
+++ b/pkgs/development/node-packages/default-v10.nix
@@ -68,10 +68,6 @@ nodePackages // {
     postInstall = "npm run-script prepublish";
   };
 
-  phantomjs = nodePackages.phantomjs.override {
-    buildInputs = [ pkgs.phantomjs2 ];
-  };
-
   pnpm = nodePackages.pnpm.override {
     nativeBuildInputs = [ pkgs.makeWrapper ];
     postInstall = let
diff --git a/pkgs/development/python-modules/Cython/default.nix b/pkgs/development/python-modules/Cython/default.nix
index 53e9ec270acf..7f252fb58cb9 100644
--- a/pkgs/development/python-modules/Cython/default.nix
+++ b/pkgs/development/python-modules/Cython/default.nix
@@ -13,6 +13,7 @@
 
 let
   excludedTests = []
+    ++ [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
     ++ stdenv.lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
@@ -25,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.28.5";
+  version = "0.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b64575241f64f6ec005a4d4137339fb0ba5e156e826db2fdb5f458060d9979e0";
+    sha256 = "15zama7fgp7yyi3z39xp3z2lvwcgch8fn3ycscw2cs37vqg6v4cl";
   };
 
   nativeBuildInputs = [
@@ -44,6 +45,7 @@ in buildPythonPackage rec {
   checkPhase = ''
     export HOME="$NIX_BUILD_TOP"
     ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
+      --no-code-style \
       ${stdenv.lib.optionalString (builtins.length excludedTests != 0)
         ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
   '';
diff --git a/pkgs/development/python-modules/aioeventlet/default.nix b/pkgs/development/python-modules/aioeventlet/default.nix
new file mode 100644
index 000000000000..73d4b278058e
--- /dev/null
+++ b/pkgs/development/python-modules/aioeventlet/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, eventlet
+, trollius
+, asyncio
+, mock
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "aioeventlet";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19krvycaiximchhv1hcfhz81249m3w3jrbp2h4apn1yf4yrc4y7y";
+  };
+
+  propagatedBuildInputs = [ eventlet trollius asyncio ];
+  buildInputs = [ mock ];
+
+  # 2 tests error out
+  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} runtests.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "aioeventlet implements the asyncio API (PEP 3156) on top of eventlet. It makes";
+    homepage = http://aioeventlet.readthedocs.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/argh/default.nix b/pkgs/development/python-modules/argh/default.nix
new file mode 100644
index 000000000000..04508b3cc1e8
--- /dev/null
+++ b/pkgs/development/python-modules/argh/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, py
+, mock
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "argh";
+  version = "0.26.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nqham81ihffc9xmw85dz3rg3v90rw7h0dp3dy0bh3qkp4n499q6";
+  };
+
+  buildInputs = [ pytest py mock pkgs.glibcLocales ];
+
+  checkPhase = ''
+    export LANG="en_US.UTF-8"
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/neithere/argh/;
+    description = "An unobtrusive argparse wrapper with natural syntax";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 01922f98c402..0174bb3a0290 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "18.8.2";
+  version = "18.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "448df2e241011ea2948799918930042d81e63d26b01912c472f5a9a37f42f319";
+    sha256 = "b5767bebd94ba13fc286604f889f208e7babc77d72d9f372d331bc14c89c5a40";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi ] ++
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 2af098692988..03a084bf01ad 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -1,19 +1,23 @@
-{ stdenv, fetchPypi, buildPythonPackage, pycodestyle }:
+{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.3.5";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "192bvhzi4d0claqxgzymvv7k3qnj627742bc8sgxpzjj42pd9112";
+    sha256 = "1b8d42ebba751a91090d3adb5c06840b1151d71ed43e1c7a9ed6911bfe8ebe6c";
   };
 
   propagatedBuildInputs = [ pycodestyle ];
 
   # One test fails:
   # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
-  doCheck = false;
+#   doCheck = false;
+
+  checkInputs = [ glibcLocales ];
+
+  LC_ALL = "en_US.UTF-8";
 
   meta = with stdenv.lib; {
     description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
diff --git a/pkgs/development/python-modules/basemap/default.nix b/pkgs/development/python-modules/basemap/default.nix
new file mode 100644
index 000000000000..256abef592c1
--- /dev/null
+++ b/pkgs/development/python-modules/basemap/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, numpy
+, matplotlib
+, pillow
+, setuptools
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "basemap";
+  version = "1.0.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz";
+    sha256 = "0ca522zirj5sj10vg3fshlmgi615zy5gw2assapcj91vsvhc4zp0";
+  };
+
+  propagatedBuildInputs = [ numpy matplotlib pillow ];
+  buildInputs = [ setuptools pkgs.geos pkgs.proj ];
+
+  # Standard configurePhase from `buildPythonPackage` seems to break the setup.py script
+  configurePhase = ''
+    export GEOS_DIR=${pkgs.geos}
+  '';
+
+  # The 'check' target is not supported by the `setup.py` script.
+  # TODO : do the post install checks (`cd examples && ${python.interpreter} run_all.py`)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://matplotlib.org/basemap/";
+    description = "Plot data on map projections with matplotlib";
+    longDescription = ''
+      An add-on toolkit for matplotlib that lets you plot data on map projections with
+      coastlines, lakes, rivers and political boundaries. See
+      http://matplotlib.github.com/basemap/users/examples.html for examples of what it can do.
+    '';
+    license = with licenses; [ mit gpl2 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/blessings/default.nix b/pkgs/development/python-modules/blessings/default.nix
new file mode 100644
index 000000000000..d17851696544
--- /dev/null
+++ b/pkgs/development/python-modules/blessings/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "blessings";
+  version = "1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01rhgn2c3xjf9h1lxij9m05iwf2ba6d0vd7nic26c2gic4q73igd";
+  };
+
+  # 4 failing tests, 2to3
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/erikrose/blessings;
+    description = "A thin, practical wrapper around terminal coloring, styling, and positioning";
+    license = licenses.mit;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/blist/default.nix b/pkgs/development/python-modules/blist/default.nix
new file mode 100644
index 000000000000..d6d55accaca7
--- /dev/null
+++ b/pkgs/development/python-modules/blist/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "blist";
+  version = "1.3.6";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hqz9pqbwx0czvq9bjdqjqh5bwfksva1is0anfazig81n18c84is";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://stutzbachenterprises.com/blist/;
+    description = "A list-like type with better asymptotic performance and similar performance on small lists";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/bootstrapped-pip/default.nix b/pkgs/development/python-modules/bootstrapped-pip/default.nix
index d482b7a8c88b..869eaa1663ff 100644
--- a/pkgs/development/python-modules/bootstrapped-pip/default.nix
+++ b/pkgs/development/python-modules/bootstrapped-pip/default.nix
@@ -3,9 +3,9 @@
 let
   wheel_source = fetchPypi {
     pname = "wheel";
-    version = "0.32.1";
+    version = "0.32.2";
     format = "wheel";
-    sha256 = "15hizylh761jcaz8zfdc3wg30jf33izaakyv1p82ppx2y5rgg8cz";
+    sha256 = "1216licil12jjixfqvkb84xkync5zz0fdc2kgzhl362z3xqjsgn9";
   };
   setuptools_source = fetchPypi {
     pname = "setuptools";
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 645f75eb3236..7dc9649e6284 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k }:
 
 buildPythonPackage rec {
-  version = "4.10.0";
+  version = "4.11.0";
   pname = "breathe";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e94370b8b607a32d9611ed8246e635f02c21dc6847f04e888a00f66a12694eff";
+    sha256 = "05x3qrvsriy0cn0p4bxnzhp27pvxbq2vxlxncr2wqh003gpbp4fa";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 3f1456f6e948..18826d46b860 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -33,7 +33,7 @@ if isPyPy then null else buildPythonPackage rec {
 
   doCheck = !stdenv.hostPlatform.isMusl; # TODO: Investigate
   checkPhase = ''
-    py.test
+    py.test -k "not test_char_pointer_conversion"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cliapp/default.nix b/pkgs/development/python-modules/cliapp/default.nix
new file mode 100644
index 000000000000..a7ae70a43795
--- /dev/null
+++ b/pkgs/development/python-modules/cliapp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, sphinx
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "cliapp";
+  version = "1.20150305";
+  disabled = isPy3k;
+
+  src = fetchgit {
+      url = "http://git.liw.fi/cgi-bin/cgit/cgit.cgi/cliapp";
+      rev = "569df8a5959cd8ef46f78c9497461240a5aa1123";
+      sha256 = "882c5daf933e4cf089842995efc721e54361d98f64e0a075e7373b734cd899f3";
+  };
+
+  buildInputs = [ sphinx ];
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://liw.fi/cliapp/;
+    description = "Python framework for Unix command line programs";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/clint/default.nix b/pkgs/development/python-modules/clint/default.nix
new file mode 100644
index 000000000000..602ab00b0849
--- /dev/null
+++ b/pkgs/development/python-modules/clint/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, mock
+, blessings
+, nose
+, nose_progressive
+, pillow
+, args
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "clint";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5";
+  };
+
+  LC_ALL="en_US.UTF-8";
+
+  checkPhase = ''
+    ${python.interpreter} test_clint.py
+  '';
+
+  buildInputs = [ mock nose nose_progressive pkgs.glibcLocales ];
+  propagatedBuildInputs = [ pillow blessings args ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kennethreitz/clint;
+    description = "Python Command Line Interface Tools";
+    license = licenses.isc;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/clize/default.nix b/pkgs/development/python-modules/clize/default.nix
new file mode 100644
index 000000000000..8456f8d473b5
--- /dev/null
+++ b/pkgs/development/python-modules/clize/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, dateutil
+, sigtools
+}:
+
+buildPythonPackage rec {
+  pname = "clize";
+  version = "3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xkr3h404d7pgj5gdpg6bddv3v3yq2hgx8qlwkgw5abg218k53hm";
+  };
+
+  buildInputs = [ dateutil ];
+  propagatedBuildInputs = [ sigtools ];
+
+  meta = with stdenv.lib; {
+    description = "Command-line argument parsing for Python";
+    homepage = "https://github.com/epsy/clize";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/cmdtest/default.nix b/pkgs/development/python-modules/cmdtest/default.nix
new file mode 100644
index 000000000000..605529b17470
--- /dev/null
+++ b/pkgs/development/python-modules/cmdtest/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, cliapp
+, ttystatus
+, markdown
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  name = "cmdtest-${version}";
+  version = "0.18";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchurl {
+    url = "http://code.liw.fi/debian/pool/main/c/cmdtest/cmdtest_${version}.orig.tar.xz";
+    sha256 = "068f24k8ad520hcf8g3gj7wvq1wspyd46ay0k9xa360jlb4dv2mn";
+  };
+
+  propagatedBuildInputs = [ cliapp ttystatus markdown ];
+
+  # TODO: cmdtest tests must be run before the buildPhase
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://liw.fi/cmdtest/;
+    description = "Black box tests Unix command line tools";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 2771e74e1340..603f92336c05 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -51,6 +51,10 @@ buildPythonPackage rec {
     hypothesis
   ];
 
+  checkPhase = ''
+    py.test --disable-pytest-warnings tests
+  '';
+
   # The test assumes that if we're on Sierra or higher, that we use `getentropy`, but for binary
   # compatibility with pre-Sierra for binary caches, we hide that symbol so the library doesn't
   # use it. This boils down to them checking compatibility with `getentropy` in two different places,
diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix
index f0de39edd0d2..2411e8251a0d 100644
--- a/pkgs/development/python-modules/cvxopt/default.nix
+++ b/pkgs/development/python-modules/cvxopt/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , fetchPypi
 , isPyPy
@@ -15,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "cvxopt";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = isPyPy; # hangs at [translation:info]
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12e3cfda982576b0b9b597d297aaf3172efa765a20fbed6f3c066aa0c48ee817";
+    sha256 = "19ipi6ljj9qv87lhgcsky1gy9543gcmqdbgzpk6v5ccv90nrcf00";
   };
 
   # similar to Gsl, glpk, fftw there is also a dsdp interface
@@ -50,7 +51,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest discover -s tests
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = http://cvxopt.org/;
     description = "Python Software for Convex Optimization";
     longDescription = ''
@@ -63,7 +64,8 @@ buildPythonPackage rec {
       standard library and on the strengths of Python as a high-level
       programming language.
     '';
-    maintainers = with lib.maintainers; [ edwtjo ];
-    license = lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ edwtjo ];
+    broken = stdenv.targetPlatform.isDarwin;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/development/python-modules/daemonize/default.nix b/pkgs/development/python-modules/daemonize/default.nix
new file mode 100644
index 000000000000..68863c61ada0
--- /dev/null
+++ b/pkgs/development/python-modules/daemonize/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "daemonize";
+  version = "2.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y139sq657bpzfv6k0aqm4071z4s40i6ybpni9qvngvdcz6r86n2";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library to enable your code run as a daemon process on Unix-like systems";
+    homepage = https://github.com/thesharp/daemonize;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/datadiff/default.nix b/pkgs/development/python-modules/datadiff/default.nix
new file mode 100644
index 000000000000..72964e3d1f64
--- /dev/null
+++ b/pkgs/development/python-modules/datadiff/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "datadiff";
+  version = "1.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "f1402701063998f6a70609789aae8dc05703f3ad0a34882f6199653654c55543";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "DataDiff";
+    homepage = https://sourceforge.net/projects/datadiff/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/dot2tex/default.nix b/pkgs/development/python-modules/dot2tex/default.nix
new file mode 100644
index 000000000000..9d644c22eaf5
--- /dev/null
+++ b/pkgs/development/python-modules/dot2tex/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pyparsing
+}:
+
+buildPythonPackage rec {
+  pname = "dot2tex";
+  version = "2.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7d3e54add7dccdaeb6cc9e61ceaf7b587914cf8ebd6821cfea008acdc1e50d4a";
+  };
+
+  # Tests fail with 3.x. Furthermore, package is no longer maintained.
+  disabled = isPy3k;
+
+  propagatedBuildInputs = [ pyparsing ];
+
+  meta = with stdenv.lib; {
+    description = "Convert graphs generated by Graphviz to LaTeX friendly formats";
+    homepage = "https://github.com/kjellmf/dot2tex";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/eggdeps/default.nix b/pkgs/development/python-modules/eggdeps/default.nix
new file mode 100644
index 000000000000..0622bd41d237
--- /dev/null
+++ b/pkgs/development/python-modules/eggdeps/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+, zope_testing
+}:
+
+buildPythonPackage rec {
+  pname = "eggdeps";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a99de5e4652865224daab09b2e2574a4f7c1d0d9a267048f9836aa914a2caf3a";
+  };
+
+  propagatedBuildInputs = [ zope_interface zope_testing ];
+
+  # tests fail, see http://hydra.nixos.org/build/4316603/log/raw
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A tool which computes a dependency graph between active Python eggs";
+    homepage = http://thomas-lotze.de/en/software/eggdeps/;
+    license = licenses.zpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/entrypoints/default.nix b/pkgs/development/python-modules/entrypoints/default.nix
index 9ee0810571ad..3f79e663455e 100644
--- a/pkgs/development/python-modules/entrypoints/default.nix
+++ b/pkgs/development/python-modules/entrypoints/default.nix
@@ -4,6 +4,7 @@
 , configparser
 , pytest
 , isPy3k
+, isPy27
 }:
 
 buildPythonPackage rec {
@@ -19,8 +20,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = lib.optional (!isPy3k) configparser;
 
-  checkPhase = ''
-    py.test tests
+  checkPhase = let
+    # On python2 with pytest 3.9.2 (not with pytest 3.7.4) the test_bad
+    # test fails. It tests that a warning (exectly one) is thrown on a "bad"
+    # path. The pytest upgrade added some warning, resulting in two warnings
+    # being thrown.
+    # upstream: https://github.com/takluyver/entrypoints/issues/23
+    pyTestArgs = if isPy27 then "-k 'not test_bad'" else "";
+  in ''
+    py.test ${pyTestArgs} tests
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/evernote/default.nix b/pkgs/development/python-modules/evernote/default.nix
new file mode 100644
index 000000000000..717ab77018e2
--- /dev/null
+++ b/pkgs/development/python-modules/evernote/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, oauth2
+}:
+
+buildPythonPackage rec {
+  pname = "evernote";
+  version = "1.25.0";
+  disabled = ! isPy27; #some dependencies do not work with py3
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lwlg6fpi3530245jzham1400a5b855bm4sbdyck229h9kg1v02d";
+  };
+
+   propagatedBuildInputs = [ oauth2 ];
+
+   meta = with stdenv.lib; {
+    description = "Evernote SDK for Python";
+    homepage = http://dev.evernote.com;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hbunke ];
+   };
+
+}
diff --git a/pkgs/development/python-modules/fasteners/default.nix b/pkgs/development/python-modules/fasteners/default.nix
new file mode 100644
index 000000000000..77a6f9b04088
--- /dev/null
+++ b/pkgs/development/python-modules/fasteners/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, monotonic
+, testtools
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "fasteners";
+  version = "0.14.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "063y20kx01ihbz2mziapmjxi2cd0dq48jzg587xdsdp07xvpcz22";
+  };
+
+  propagatedBuildInputs = [ six monotonic testtools ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  # Tests are written for Python 3.x only (concurrent.futures)
+  doCheck = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Fasteners";
+    homepage = https://github.com/harlowja/fasteners;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/flaskbabel/default.nix b/pkgs/development/python-modules/flaskbabel/default.nix
new file mode 100644
index 000000000000..e04bae7f1c0f
--- /dev/null
+++ b/pkgs/development/python-modules/flaskbabel/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, flask
+, jinja2
+, speaklater
+, Babel
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "Flask-Babel";
+  version = "0.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16b80cipdba9xj3jlaiaq6wgrgpjb70w3j01jjy9hbp4k71kd6yj";
+  };
+
+  propagatedBuildInputs = [ flask jinja2 speaklater Babel pytz ];
+
+  meta = with stdenv.lib; {
+    description = "Adds i18n/l10n support to Flask applications";
+    homepage = https://github.com/mitsuhiko/flask-babel;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ matejc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/freezegun/default.nix b/pkgs/development/python-modules/freezegun/default.nix
new file mode 100644
index 000000000000..3be87da2f824
--- /dev/null
+++ b/pkgs/development/python-modules/freezegun/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, dateutil
+, six
+, mock
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "freezegun";
+  version = "0.3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1sf38d3ibv1jhhvr52x7dhrsiyqk1hm165dfv8w8wh0fhmgxg151";
+  };
+
+  propagatedBuildInputs = [ dateutil six ];
+  buildInputs = [ mock nose ];
+
+  meta = with stdenv.lib; {
+    description = "FreezeGun: Let your Python tests travel through time";
+    homepage = "https://github.com/spulec/freezegun";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/funcy/default.nix b/pkgs/development/python-modules/funcy/default.nix
new file mode 100644
index 000000000000..ab7500466e04
--- /dev/null
+++ b/pkgs/development/python-modules/funcy/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "funcy";
+  version = "1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "511495db0c5660af18d3151b008c6ce698ae7fbf60887278e79675e35eed1f01";
+  };
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Collection of fancy functional tools focused on practicality";
+    homepage = "http://funcy.readthedocs.org/";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/gdata/default.nix b/pkgs/development/python-modules/gdata/default.nix
new file mode 100644
index 000000000000..dbf2911ce195
--- /dev/null
+++ b/pkgs/development/python-modules/gdata/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+}:
+
+buildPythonPackage rec {
+  pname = "gdata";
+  version = "2.0.18";
+
+  src = fetchurl {
+    url = "https://gdata-python-client.googlecode.com/files/${pname}-${version}.tar.gz";
+    sha256 = "1dpxl5hwyyqd71avpm5vkvw8fhlvf9liizmhrq9jphhrx0nx5rsn";
+  };
+
+  # Fails with "error: invalid command 'test'"
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://code.google.com/p/gdata-python-client/;
+    description = "Python client library for Google data APIs";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/geeknote/default.nix b/pkgs/development/python-modules/geeknote/default.nix
new file mode 100644
index 000000000000..d352d6def24f
--- /dev/null
+++ b/pkgs/development/python-modules/geeknote/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, thrift
+, beautifulsoup4
+, markdown2
+, sqlalchemy
+, html2text
+, evernote
+}:
+
+buildPythonPackage rec {
+  version = "2015-05-11";
+  pname = "geeknote";
+  disabled = ! isPy27;
+
+  src = fetchFromGitHub {
+    owner = "VitaliyRodnenko";
+    repo = "geeknote";
+    rev = "8489a87d044e164edb321ba9acca8d4631de3dca";
+    sha256 = "0l16v4xnyqnsf84b1pma0jmdyxvmfwcv3sm8slrv3zv7zpmcm3lf";
+  };
+
+  /* build with tests fails with "Can not create application dirictory :
+   /homeless-shelter/.geeknotebuilder". */
+  doCheck = false;
+
+  propagatedBuildInputs = [ thrift beautifulsoup4 markdown2 sqlalchemy html2text evernote ];
+
+  meta = with stdenv.lib; {
+    description = "Work with Evernote from command line";
+    homepage = http://www.geeknote.me;
+    license = licenses.gpl1;
+    maintainers = with maintainers; [ hbunke ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
new file mode 100644
index 000000000000..ca99f73c0213
--- /dev/null
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sqlalchemy
+, shapely
+}:
+
+buildPythonPackage rec {
+  pname = "GeoAlchemy2";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0p2h1kgl5b0jz8wadx485vjh1mmm5s67p71yxh9lhp1441hkfswf";
+  };
+
+  propagatedBuildInputs = [ sqlalchemy shapely ];
+
+  meta = with stdenv.lib; {
+    homepage =  http://geoalchemy.org/;
+    license = licenses.mit;
+    description = "Toolkit for working with spatial databases";
+  };
+
+}
diff --git a/pkgs/development/python-modules/geopy/default.nix b/pkgs/development/python-modules/geopy/default.nix
new file mode 100644
index 000000000000..160a519ee104
--- /dev/null
+++ b/pkgs/development/python-modules/geopy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, mock
+, tox
+, pylint
+}:
+
+buildPythonPackage rec {
+  pname = "geopy";
+  version = "1.11.0";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04j1lxcsfyv03h0n0q7p2ig7a4n13x4x20fzxn8bkazpx6lyal22";
+  };
+
+  doCheck = false;  # too much
+
+  buildInputs = [ mock tox pylint ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/geopy/geopy";
+    description = "Python Geocoding Toolbox";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/grequests/default.nix b/pkgs/development/python-modules/grequests/default.nix
new file mode 100644
index 000000000000..c42ace2e695b
--- /dev/null
+++ b/pkgs/development/python-modules/grequests/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, gevent
+}:
+
+buildPythonPackage rec {
+  pname = "grequests";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lafzax5igbh8y4x0krizr573wjsxz7bhvwygiah6qwrzv83kv5c";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  propagatedBuildInputs = [ requests gevent ];
+
+  meta = with stdenv.lib; {
+    description = "Asynchronous HTTP requests";
+    homepage = https://github.com/kennethreitz/grequests;
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ matejc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 49f44bb16e44..8cbc08dbbfd0 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -1,38 +1,52 @@
-{ buildPythonPackage, fetchurl, stdenv, meson, ninja, pkgconfig, python, pygobject3
-, gst-plugins-base, ncurses
+{ buildPythonPackage, fetchurl, meson, ninja, stdenv, pkgconfig, python, pygobject3
+, gobjectIntrospection, gst-plugins-base, isPy3k
 }:
 
 let
   pname = "gst-python";
-  version = "1.14.2";
+  version = "1.14.4";
   name = "${pname}-${version}";
 in buildPythonPackage rec {
   inherit pname version;
   format = "other";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-python/${name}.tar.xz"
       "mirror://gentoo/distfiles/${name}.tar.xz"
       ];
-    sha256 = "08nb011acyvlz48fqh8c084k0dlssz9b7wha7zzk797inidbwh6w";
+    sha256 = "06ssx19fs6pg4d32p9ph9w4f0xwmxaw2dxfj17rqkn5njd7v5zfh";
   };
 
-  outputs = [ "out" "dev" ];
+  patches = [
+    # Meson build does not support Python 2 at the moment
+    # https://bugzilla.gnome.org/show_bug.cgi?id=796092
+    (fetchurl {
+      name = "0002-meson-use-new-python-module.patch";
+      url = https://bugzilla.gnome.org/attachment.cgi?id=371989;
+      sha256 = "1k46nvw175c1wvkqnx783i9d4w9vn431spcl48jb3y224jj3va08";
+    })
+  ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig python ];
+  # TODO: First python_dep in meson.build needs to be removed
+  postPatch = ''
+    substituteInPlace meson.build --replace python3 python${if isPy3k then "3" else "2"}
+  '';
 
-  # XXX: in the Libs.private field of python3.pc
-  buildInputs = [ ncurses ];
+  nativeBuildInputs = [ meson ninja pkgconfig python gobjectIntrospection ];
 
   mesonFlags = [
-    "-Dpygi-overrides-dir=${python.sitePackages}/gi/overrides"
+    "-Dpython=python${if isPy3k then "3" else "2"}"
+    "-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides"
   ];
 
-  postPatch = ''
-    chmod +x scripts/pythondetector # patchShebangs requires executable file
-    patchShebangs scripts/pythondetector
-  '';
+  doCheck = true;
+
+  # TODO: Meson setup hook does not like buildPythonPackage
+  # https://github.com/NixOS/nixpkgs/issues/47390
+  installCheckPhase = "meson test --print-errorlogs";
 
   propagatedBuildInputs = [ gst-plugins-base pygobject3 ];
 
diff --git a/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch b/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch
deleted file mode 100644
index 7326b3630f70..000000000000
--- a/pkgs/development/python-modules/gst-python/different-path-with-pygobject.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -Nru gst-python-1.2.0-orig/gi/overrides/Makefile.in gst-python-1.2.0/gi/overrides/Makefile.in
---- gst-python-1.2.0-orig/gi/overrides/Makefile.in	2014-03-22 21:47:56.235364405 +0800
-+++ gst-python-1.2.0/gi/overrides/Makefile.in	2014-03-22 21:48:28.737958066 +0800
-@@ -356,7 +356,7 @@
- 
- # We install everything in the gi/overrides folder
- pygioverridesdir = $(PYGI_OVERRIDES_DIR)
--pygioverrides_PYTHON = Gst.py GstPbutils.py
-+pygioverrides_PYTHON = Gst.py GstPbutils.py __init__.py
- pygioverridesexecdir = $(PYGI_OVERRIDES_DIR)
- EXTRA_DIST = Gst.py
- INCLUDES = $(PYTHON_INCLUDES)
-diff -Nru gst-python-1.2.0-orig/gi/overrides/__init__.py gst-python-1.2.0/gi/overrides/__init__.py
---- gst-python-1.2.0-orig/gi/overrides/__init__.py	1970-01-01 08:00:00.000000000 +0800
-+++ gst-python-1.2.0/gi/overrides/__init__.py	2014-03-22 21:48:15.442124287 +0800
-@@ -0,0 +1,4 @@
-+from pkgutil import extend_path
-+
-+__path__ = extend_path(__path__, __name__)
-+print(__path__, __name__)
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index 90395b3b2a92..f224baeefbae 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "guessit";
-  version = "3.0.0";
+  version = "3.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bf17e78783cf13bf903750770de4c3bb6c9ca89baafedb1612794660b6ebe32b";
+    sha256 = "1q06b3k31bfb8cxjimpf1rkcrwnc596a9cppjw15minvdangl32r";
   };
 
   # Tests require more packages.
diff --git a/pkgs/development/python-modules/hgsvn/default.nix b/pkgs/development/python-modules/hgsvn/default.nix
new file mode 100644
index 000000000000..29af19aaf991
--- /dev/null
+++ b/pkgs/development/python-modules/hgsvn/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, hglib
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "hgsvn";
+  version = "0.3.11";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0yvhwdh8xx8rvaqd3pnnyb99hfa0zjdciadlc933p27hp9rf880p";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ hglib ];
+
+  doCheck = false;  # too many assumptions
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/hgsvn;
+    description = "A set of scripts to work locally on Subversion checkouts using Mercurial";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/html2text/default.nix b/pkgs/development/python-modules/html2text/default.nix
new file mode 100644
index 000000000000..6840f461cc94
--- /dev/null
+++ b/pkgs/development/python-modules/html2text/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "html2text";
+  version = "2016.9.19";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "554ef5fd6c6cf6e3e4f725a62a3e9ec86a0e4d33cd0928136d1c79dbeb7b2d55";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Turn HTML into equivalent Markdown-structured text";
+    homepage = https://github.com/Alir3z4/html2text/;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 5694ea92405c..71eced5c7eeb 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "3.66.2";
+  version = "3.79.3";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "17ywbwa76z7f0pgash0003fvm25fsj7hxdrdiprdbv99y3i8bm88";
+    sha256 = "1ay0kwh5315scv7yz9xxrr7shynyx6flgplc1qzbz3j21cyx3yn7";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/pkgs/development/python-modules/imapclient/default.nix b/pkgs/development/python-modules/imapclient/default.nix
new file mode 100644
index 000000000000..5334d473620a
--- /dev/null
+++ b/pkgs/development/python-modules/imapclient/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy34
+, isPy35
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "IMAPClient";
+  version = "0.13";
+  disabled = isPy34 || isPy35;
+
+  src = fetchurl {
+    url = "http://freshfoo.com/projects/IMAPClient/${pname}-${version}.tar.gz";
+    sha256 = "0v7kd1crdbff0rmh4ddm5qszkis6hpk9084qh94al8h7g4y9l3is";
+  };
+
+  buildInputs = [ mock ];
+
+  preConfigure = ''
+    sed -i '/distribute_setup/d' setup.py
+    substituteInPlace setup.py --replace "mock==0.8.0" "mock"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://imapclient.freshfoo.com/;
+    description = "Easy-to-use, Pythonic and complete IMAP client library";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/importmagic/default.nix b/pkgs/development/python-modules/importmagic/default.nix
new file mode 100644
index 000000000000..c708343818f8
--- /dev/null
+++ b/pkgs/development/python-modules/importmagic/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "importmagic";
+  version = "0.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "194bl8l8sc2ibwi6g5kz6xydkbngdqpaj6r2gcsaw1fc73iswwrj";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;  # missing json file from tarball
+
+  meta = with stdenv.lib; {
+    description = "Python Import Magic - automagically add, remove and manage imports";
+    homepage = https://github.com/alecthomas/importmagic;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/isodate/default.nix b/pkgs/development/python-modules/isodate/default.nix
new file mode 100644
index 000000000000..cc4594e97709
--- /dev/null
+++ b/pkgs/development/python-modules/isodate/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "isodate";
+  version = "0.5.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42105c41d037246dc1987e36d96f3752ffd5c0c24834dd12e4fdbe1e79544e31";
+  };
+
+  # Judging from SyntaxError
+  doCheck = !(isPy3k);
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s src/isodate/tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "ISO 8601 date/time parser";
+    homepage = http://cheeseshop.python.org/pypi/isodate;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
new file mode 100644
index 000000000000..ac654498ac4a
--- /dev/null
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pip
+, pbr
+, mock
+, python-jenkins
+, pyyaml
+, six
+, stevedore
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "jenkins-job-builder";
+  version = "2.0.0.0b2";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1y0yl2w6c9c91f9xbjkvff1ag8p72r24nzparrzrw9sl8kn9632x";
+  };
+
+  patchPhase = ''
+    export HOME=$TMPDIR
+  '';
+
+  buildInputs = [ pip ];
+  propagatedBuildInputs = [ pbr mock python-jenkins pyyaml six stevedore ];
+
+  meta = with stdenv.lib; {
+    description = "Jenkins Job Builder is a system for configuring Jenkins jobs using simple YAML files stored in Git";
+    homepage = "https://docs.openstack.org/infra/system-config/jjb.html";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/jenkinsapi/default.nix b/pkgs/development/python-modules/jenkinsapi/default.nix
new file mode 100644
index 000000000000..a80320707088
--- /dev/null
+++ b/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+, requests
+, coverage
+, mock
+, nose
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "jenkinsapi";
+  version = "0.2.32";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fcc78b8dfc87237942aad2a8be54dbc08bc4afceaa7f6897f3d894e7d4bfd22";
+  };
+
+  propagatedBuildInputs = [ pytz requests ];
+  buildInputs = [ coverage mock nose unittest2 ];
+
+  meta = with stdenv.lib; {
+    description = "A Python API for accessing resources on a Jenkins continuous-integration server";
+    homepage = https://github.com/salimfadhley/jenkinsapi;
+    maintainers = with maintainers; [ drets ];
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/kaa-base/default.nix b/pkgs/development/python-modules/kaa-base/default.nix
new file mode 100644
index 000000000000..f0994cebe111
--- /dev/null
+++ b/pkgs/development/python-modules/kaa-base/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  version = "0.99.2dev-384-2b73caca";
+  pname = "kaa-base";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0k3zzz84wzz9q1fl3vvqr2ys96z9pcf4viq9q6s2a63zaysmcfd2";
+  };
+
+  doCheck = false;
+
+  disabled = isPyPy || isPy3k;
+
+  # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
+  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
+    mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Generic application framework, providing the foundation for other modules";
+    homepage = https://github.com/freevo/kaa-base;
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/kaa-metadata/default.nix b/pkgs/development/python-modules/kaa-metadata/default.nix
new file mode 100644
index 000000000000..d78adf7fd39d
--- /dev/null
+++ b/pkgs/development/python-modules/kaa-metadata/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, kaa-base
+, isPyPy
+, isPy3k
+, python
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "0.7.8dev-r4569-20111003";
+  pname = "kaa-metadata";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bkbzfgxvmby8lvzkqjp86anxvv3vjd9nksv2g4l7shsk1n7y27a";
+  };
+
+  doCheck = false;
+
+  buildInputs = [ pkgs.libdvdread ];
+
+  propagatedBuildInputs = [ kaa-base ];
+
+  # Same as in buildPythonPackage except that it does not pass --old-and-unmanageable
+  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
+    mv "$eapth" $(dirname "$eapth")/${pname}-${version}.pth
+    fi
+
+    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python library for parsing media metadata, which can extract metadata (e.g., such as id3 tags) from a wide range of media files";
+    homepage = https://github.com/freevo/kaa-metadata;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/larch/default.nix b/pkgs/development/python-modules/larch/default.nix
new file mode 100644
index 000000000000..74703ff5c9df
--- /dev/null
+++ b/pkgs/development/python-modules/larch/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, sphinx
+, tracing
+, ttystatus
+, cliapp
+}:
+
+buildPythonPackage rec {
+  pname = "larch";
+  version = "1.20131130";
+
+  src = fetchurl {
+    url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_${version}.orig.tar.gz";
+    sha256 = "1hfanp9l6yc5348i3f5sb8c5s4r43y382hflnbl6cnz4pm8yh5r7";
+  };
+
+  buildInputs = [ sphinx ];
+  propagatedBuildInputs = [ tracing ttystatus cliapp ];
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://liw.fi/larch/;
+    description = "Python B-tree library";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/lasagne/default.nix b/pkgs/development/python-modules/lasagne/default.nix
new file mode 100644
index 000000000000..febd38acc63f
--- /dev/null
+++ b/pkgs/development/python-modules/lasagne/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, Theano
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "Lasagne";
+  version = "0.1";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0cqj86rdm6c7y5vq3i13qy76fg5xi3yjp4r0hpqy8hvynv54wqrw";
+  };
+
+  propagatedBuildInputs = [ numpy Theano ];
+
+  # there are no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Lightweight library to build and train neural networks in Theano";
+    homepage = "https://github.com/Lasagne/Lasagne";
+    maintainers = with maintainers; [ NikolaMandic ];
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/libarchive-c/default.nix b/pkgs/development/python-modules/libarchive-c/default.nix
new file mode 100644
index 000000000000..e1beafaf10a1
--- /dev/null
+++ b/pkgs/development/python-modules/libarchive-c/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "libarchive-c";
+  version = "2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "011bfsmqpcwd6920kckllh7zhw2y4rrasgmddb7wjzn2hg1xpsjn";
+  };
+
+  buildInputs = [ pytest pkgs.glibcLocales ];
+
+  LC_ALL="en_US.UTF-8";
+
+  postPatch = ''
+    substituteInPlace libarchive/ffi.py --replace \
+      "find_library('archive')" "'${pkgs.libarchive.lib}/lib/libarchive.so'"
+  '';
+
+  checkPhase = ''
+    py.test tests -k 'not test_check_archiveentry_with_unicode_entries_and_name_zip and not test_check_archiveentry_using_python_testtar'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Changaco/python-libarchive-c;
+    description = "Python interface to libarchive";
+    license = licenses.cc0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/linecache2/default.nix b/pkgs/development/python-modules/linecache2/default.nix
new file mode 100644
index 000000000000..9890d382742c
--- /dev/null
+++ b/pkgs/development/python-modules/linecache2/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pbr
+}:
+
+buildPythonPackage rec {
+  pname = "linecache2";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0z79g3ds5wk2lvnqw0y2jpakjf32h95bd9zmnvp7dnqhf57gy9jb";
+  };
+
+  buildInputs = [ pbr ];
+  # circular dependencies for tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A backport of linecache to older supported Pythons";
+    homepage = "https://github.com/testing-cabal/linecache2";
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
new file mode 100644
index 000000000000..adc0042a52e5
--- /dev/null
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "lz4";
+  version = "0.8.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1irad4sq4hdr30fr53smvv3zzk4rddcf9b4jx19w8s9xsxhr1x3b";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Compression library";
+    homepage = https://github.com/python-lz4/python-lz4;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mailcap-fix/default.nix b/pkgs/development/python-modules/mailcap-fix/default.nix
new file mode 100644
index 000000000000..886a3ed66b37
--- /dev/null
+++ b/pkgs/development/python-modules/mailcap-fix/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy36
+}:
+
+buildPythonPackage rec {
+  pname = "mailcap-fix";
+  version = "1.0.1";
+  disabled = isPy36; # this fix is merged into python 3.6
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02lijkq6v379r8zkqg9q2srin3i80m4wvwik3hcbih0s14v0ng0i";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A patched mailcap module that conforms to RFC 1524";
+    homepage = "https://github.com/michael-lazar/mailcap_fix";
+    license = licenses.unlicense;
+  };
+
+}
diff --git a/pkgs/development/python-modules/maildir-deduplicate/default.nix b/pkgs/development/python-modules/maildir-deduplicate/default.nix
new file mode 100644
index 000000000000..a0a4e52ea276
--- /dev/null
+++ b/pkgs/development/python-modules/maildir-deduplicate/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, click
+}:
+
+buildPythonPackage rec {
+  pname = "maildir-deduplicate";
+  version = "1.0.2";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xy5z756alrjgpl9qx2gdx898rw1mryrqkwmipbh39mgrvkl3fz9";
+  };
+
+  propagatedBuildInputs = [ click ];
+
+  meta = with stdenv.lib; {
+    description = "Command-line tool to deduplicate mails from a set of maildir folders";
+    homepage = "https://github.com/kdeldycke/maildir-deduplicate";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mmpython/default.nix b/pkgs/development/python-modules/mmpython/default.nix
new file mode 100644
index 000000000000..c35b2e35cfb8
--- /dev/null
+++ b/pkgs/development/python-modules/mmpython/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.4.10";
+  pname = "mmpython";
+
+  src = fetchurl {
+    url = http://sourceforge.net/projects/mmpython/files/latest/download;
+    sha256 = "1b7qfad3shgakj37gcj1b9h78j1hxlz6wp9k7h76pb4sq4bfyihy";
+    name = "${pname}-${version}.tar.gz";
+  };
+
+  disabled = isPyPy || isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Media Meta Data retrieval framework";
+    homepage = https://sourceforge.net/projects/mmpython/;
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mongodict/default.nix b/pkgs/development/python-modules/mongodict/default.nix
new file mode 100644
index 000000000000..932160bb9fad
--- /dev/null
+++ b/pkgs/development/python-modules/mongodict/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pymongo
+}:
+
+buildPythonPackage rec {
+  pname = "mongodict";
+  version = "0.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nv5amfs337m0gbxpjb0585s20rndqfc3mfrzq1iwgnds5gxcrlw";
+  };
+
+  propagatedBuildInputs = [ pymongo ];
+
+  meta = with stdenv.lib; {
+    description = "MongoDB-backed Python dict-like interface";
+    homepage = "https://github.com/turicas/mongodict/";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mox3/default.nix b/pkgs/development/python-modules/mox3/default.nix
new file mode 100644
index 000000000000..8701ea177b02
--- /dev/null
+++ b/pkgs/development/python-modules/mox3/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, subunit
+, testrepository
+, testtools
+, six
+, pbr
+, fixtures
+, isPy36
+}:
+
+buildPythonPackage rec {
+  pname = "mox3";
+  version = "0.23.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q26sg0jasday52a7y0cch13l0ssjvr4yqnvswqxsinj1lv5ld88";
+  };
+
+  patchPhase = ''
+    sed -i 's@python@${python.interpreter}@' .testr.conf
+  '';
+
+  buildInputs = [ subunit testrepository testtools six ];
+  propagatedBuildInputs = [ pbr fixtures ];
+
+  #  FAIL: mox3.tests.test_mox.RegexTest.testReprWithFlags
+  #  ValueError: cannot use LOCALE flag with a str pattern
+  doCheck = !isPy36;
+
+  meta = with stdenv.lib; {
+    description = "Mock object framework for Python";
+    homepage = https://docs.openstack.org/mox3/latest/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/mps-youtube/default.nix b/pkgs/development/python-modules/mps-youtube/default.nix
new file mode 100644
index 000000000000..4a3ff00f8352
--- /dev/null
+++ b/pkgs/development/python-modules/mps-youtube/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pafy
+}:
+
+buildPythonPackage rec {
+  name = "mps-youtube-${version}";
+  version = "0.2.7.1";
+  disabled = (!isPy3k);
+
+  src = fetchFromGitHub {
+    owner = "mps-youtube";
+    repo = "mps-youtube";
+    rev = "v${version}";
+    sha256 = "16zn5gwb3568w95lr21b88zkqlay61p1541sa9c3x69zpi8v0pys";
+  };
+
+  propagatedBuildInputs = [ pafy ];
+
+  # disabled due to error in loading unittest
+  # don't know how to make test from: <mps_youtube. ...>
+  doCheck = false;
+
+  # before check create a directory and redirect XDG_CONFIG_HOME to it
+  preCheck = ''
+    mkdir -p check-phase
+    export XDG_CONFIG_HOME=$(pwd)/check-phase
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Terminal based YouTube player and downloader";
+    homepage = https://github.com/np1/mps-youtube;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ odi ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/neovim_gui/default.nix b/pkgs/development/python-modules/neovim_gui/default.nix
new file mode 100644
index 000000000000..da3a0591f7c3
--- /dev/null
+++ b/pkgs/development/python-modules/neovim_gui/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, neovim
+, click
+, pygobject3
+, isPy27
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "neovim-pygui";
+  version = "0.1.3";
+  disabled = !isPy27;
+
+  src = fetchFromGitHub {
+    owner = "neovim";
+    repo = "python-gui";
+    rev = version;
+    sha256 = "1vpvr3zm3f9sxg1z1cl7f7gi8v1xksjdvxj62qnw65aqj3zqxnkz";
+  };
+
+  propagatedBuildInputs = [ neovim click pygobject3 pkgs.gobjectIntrospection pkgs.makeWrapper pkgs.gtk3 ];
+
+  patchPhase = ''
+    sed -i -e "s|entry_points=entry_points,|entry_points=dict(console_scripts=['pynvim=neovim.ui.cli:main [GUI]']),|" setup.py
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/pynvim \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix PYTHONPATH : "${pygobject3}/lib/python2.7/site-packages:$PYTHONPATH"
+  '';
+
+}
diff --git a/pkgs/development/python-modules/nose_progressive/default.nix b/pkgs/development/python-modules/nose_progressive/default.nix
new file mode 100644
index 000000000000..98e34212cb8e
--- /dev/null
+++ b/pkgs/development/python-modules/nose_progressive/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, pillow
+, blessings
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "nose-progressive";
+  version = "1.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mfbjv3dcg23q0a130670g7xpfyvgza4wxkj991xxh8w9hs43ga4";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ pillow blessings ];
+
+  # fails with obscure error
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/erikrose/nose-progressive;
+    description = "A testrunner with a progress bar and smarter tracebacks";
+    license = licenses.mit;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index a7894672e8c8..1b14657d5061 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -22,9 +22,8 @@ in buildPythonPackage rec {
     sha256 = "1i5p4ia4qcqmfb9k90g3ssbr090q555fdpc32sl4x6rgqfw5ddj4";
   };
 
-  buildInputs = stdenv.lib.optionals doCheck [ vmprof pyqt4 ];
-
-  propagatedBuildInputs = [ scons ];
+  checkInputs = [ vmprof pyqt4 ];
+  nativeBuildInputs = [ scons ];
 
   postPatch = ''
     patchShebangs tests/run-tests
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index 6e237b2bd9ed..acf41fb539e3 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , python
 , numpy
+, llvmPackages ? null
 }:
 
 buildPythonPackage rec {
@@ -14,6 +15,17 @@ buildPythonPackage rec {
     sha256 = "ee8bc7201aa2f1962c67d27c326a11eef9df887d7b87b1278a1d4e722bf44375";
   };
 
+  # Remove existing site.cfg, use the one we built for numpy.
+  # Somehow openmp needs to be added to LD_LIBRARY_PATH
+  # https://software.intel.com/en-us/forums/intel-system-studio/topic/611682
+  preBuild = ''
+    rm site.cfg
+    ln -s ${numpy.cfg} site.cfg
+    export LD_LIBRARY_PATH=${llvmPackages.openmp}/lib
+  '';
+
+  buildInputs = [] ++ lib.optional (numpy.blasImplementation == "mkl") llvmPackages.openmp;
+
   propagatedBuildInputs = [ numpy ];
 
   # Run the test suite.
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 87428f4563d9..5710c9cc7a4e 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -1,13 +1,27 @@
-{ stdenv, lib, fetchPypi, python, buildPythonPackage, isPyPy, gfortran, pytest, blas }:
+{ stdenv, lib, fetchPypi, python, buildPythonPackage, isPyPy, gfortran, pytest, blas, writeTextFile }:
 
-buildPythonPackage rec {
+let
+  blasImplementation = lib.nameFromURL blas.name "-";
+  cfg = writeTextFile {
+    name = "site.cfg";
+    text = (lib.generators.toINI {} {
+      "${blasImplementation}" = {
+        include_dirs = "${blas}/include";
+        library_dirs = "${blas}/lib";
+      } // lib.optionalAttrs (blasImplementation == "mkl") {
+        mkl_libs = "mkl_rt";
+        lapack_libs = "";
+      };
+    });
+  };
+in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.15.2";
+  version = "1.15.3";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "27a0d018f608a3fe34ac5e2b876f4c23c47e38295c47dd0775cc294cd2614bc1";
+    sha256 = "1c0c80e74759fa4942298044274f2c11b08c86230b25b8b819e55e644f5ff2b6";
   };
 
   disabled = isPyPy;
@@ -39,12 +53,7 @@ buildPythonPackage rec {
   '';
 
   preBuild = ''
-    echo "Creating site.cfg file..."
-    cat << EOF > site.cfg
-    [openblas]
-    include_dirs = ${blas}/include
-    library_dirs = ${blas}/lib
-    EOF
+    ln -s ${cfg} site.cfg
   '';
 
   enableParallelBuilding = true;
@@ -59,8 +68,11 @@ buildPythonPackage rec {
 
   passthru = {
     blas = blas;
+    inherit blasImplementation cfg;
   };
 
+  doCheck = blasImplementation != "mkl";
+
   # Disable two tests
   # - test_f2py: f2py isn't yet on path.
   # - test_large_file_support: takes a long time and can cause the machine to run out of disk space
diff --git a/pkgs/development/python-modules/ofxparse/default.nix b/pkgs/development/python-modules/ofxparse/default.nix
new file mode 100644
index 000000000000..6308921aeab1
--- /dev/null
+++ b/pkgs/development/python-modules/ofxparse/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, beautifulsoup4
+}:
+
+buildPythonPackage rec {
+  pname = "ofxparse";
+  version = "0.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d8c486126a94d912442d040121db44fbc4a646ea70fa935df33b5b4dbfbbe42a";
+  };
+
+  propagatedBuildInputs = [ six beautifulsoup4 ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://sites.google.com/site/ofxparse";
+    description = "Tools for working with the OFX (Open Financial Exchange) file format";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ofxtools/default.nix b/pkgs/development/python-modules/ofxtools/default.nix
new file mode 100644
index 000000000000..8490aae4f5c2
--- /dev/null
+++ b/pkgs/development/python-modules/ofxtools/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "ofxtools";
+  version = "0.3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "88f289a60f4312a1599c38a8fb3216e2b46d10cc34476f9a16a33ac8aac7ec35";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s ofxtools
+  '';
+
+  buildInputs = [ sqlalchemy ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/csingley/ofxtools";
+    description = "Library for working with Open Financial Exchange (OFX) formatted data used by financial institutions";
+    license = licenses.mit;
+    broken = true;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pagerduty/default.nix b/pkgs/development/python-modules/pagerduty/default.nix
new file mode 100644
index 000000000000..634de3947a67
--- /dev/null
+++ b/pkgs/development/python-modules/pagerduty/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pagerduty";
+  version = "0.2.1";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e8c237239d3ffb061069aa04fc5b3d8ae4fb0af16a9713fe0977f02261d323e9";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/samuel/python-pagerduty;
+    description = "Library for the PagerDuty service API";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pamqp/default.nix b/pkgs/development/python-modules/pamqp/default.nix
new file mode 100644
index 000000000000..89e88476e377
--- /dev/null
+++ b/pkgs/development/python-modules/pamqp/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, nose
+, pep8
+, pylint
+, mccabe
+}:
+
+buildPythonPackage rec {
+  version = "1.6.1";
+  pname = "pamqp";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vmyvynqzx5zvbipaxff4fnzy3h3dvl3zicyr15yb816j93jl2ca";
+  };
+
+  buildInputs = [ mock nose pep8 pylint mccabe ];
+
+  meta = with stdenv.lib; {
+    description = "RabbitMQ Focused AMQP low-level library";
+    homepage = https://pypi.python.org/pypi/pamqp;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pandocfilters/default.nix b/pkgs/development/python-modules/pandocfilters/default.nix
new file mode 100644
index 000000000000..b3a815e997c8
--- /dev/null
+++ b/pkgs/development/python-modules/pandocfilters/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec{
+  version = "1.4.1";
+  pname = "pandocfilters";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ec8bcd100d081db092c57f93462b1861bcfa1286ef126f34da5cb1d969538acd";
+  };
+
+  # No tests available
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A python module for writing pandoc filters, with a collection of examples";
+    homepage = https://github.com/jgm/pandocfilters;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
new file mode 100644
index 000000000000..6548e39078ea
--- /dev/null
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, future
+}:
+
+buildPythonPackage rec {
+  pname = "parsedatetime";
+  version = "2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vkrmd398s11h1zn3zaqqsiqhj9lwy1ikcg6irx2lrgjzjg3rjll";
+  };
+
+  buildInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ future ];
+
+  meta = with stdenv.lib; {
+    description = "Parse human-readable date/time text";
+    homepage = "https://github.com/bear/parsedatetime";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/parsel/default.nix b/pkgs/development/python-modules/parsel/default.nix
new file mode 100644
index 000000000000..ef6c795773c8
--- /dev/null
+++ b/pkgs/development/python-modules/parsel/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestrunner
+, six
+, w3lib
+, lxml
+, cssselect
+}:
+
+buildPythonPackage rec {
+  pname = "parsel";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0a34d1c0bj1fzb5dk5744m2ag6v3b8glk4xp0amqxdan9ldbcd97";
+  };
+
+  buildInputs = [ pytest pytestrunner ];
+  propagatedBuildInputs = [ six w3lib lxml cssselect ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/scrapy/parsel";
+    description = "Parsel is a library to extract data from HTML and XML using XPath and CSS selectors";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/parsimonious/default.nix b/pkgs/development/python-modules/parsimonious/default.nix
new file mode 100644
index 000000000000..13fabd4cbf90
--- /dev/null
+++ b/pkgs/development/python-modules/parsimonious/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  version = "0.7.0";
+  pname = "parsimonious";
+
+  src = fetchFromGitHub {
+    repo = "parsimonious";
+    owner = "erikrose";
+    rev = version;
+    sha256 = "087npc8ccryrxabmqifcz56w4wd0hzmv0mc91wrbhc1sil196j0a";
+  };
+
+  propagatedBuildInputs = [ nose six ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/erikrose/parsimonious";
+    description = "Fast arbitrary-lookahead parser written in pure Python";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
new file mode 100644
index 000000000000..e8aceae062f5
--- /dev/null
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "paste";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "062jk0nlxf6lb2wwj6zc20rlvrwsnikpkh90y0dn8cjch93s6ii3";
+  };
+
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ six ];
+
+  # Certain tests require network
+  checkPhase = ''
+    NOSE_EXCLUDE=test_ok,test_form,test_error,test_stderr,test_paste_website nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for using a Web Server Gateway Interface stack";
+    homepage = http://pythonpaste.org/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pastedeploy/default.nix b/pkgs/development/python-modules/pastedeploy/default.nix
new file mode 100644
index 000000000000..433a67da51c9
--- /dev/null
+++ b/pkgs/development/python-modules/pastedeploy/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  version = "1.5.2";
+  pname = "PasteDeploy";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d5858f89a255e6294e63ed46b73613c56e3b9a2d82a42f1df4d06c8421a9e3cb";
+  };
+
+  buildInputs = [ nose ];
+
+  meta = with stdenv.lib; {
+    description = "Load, configure, and compose WSGI applications and servers";
+    homepage = http://pythonpaste.org/deploy/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
new file mode 100644
index 000000000000..06e71cf790b2
--- /dev/null
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+, paste
+, PasteDeploy
+, cheetah
+, argparse
+}:
+
+buildPythonPackage rec {
+  version = "1.7.5";
+  pname = "PasteScript";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2b685be69d6ac8bc0fe6f558f119660259db26a15e16a4943c515fbee8093539";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ six paste PasteDeploy cheetah argparse ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A pluggable command-line frontend, including commands to setup package file layouts";
+    homepage = http://pythonpaste.org/script/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/patch/default.nix b/pkgs/development/python-modules/patch/default.nix
new file mode 100644
index 000000000000..1a7ce9539476
--- /dev/null
+++ b/pkgs/development/python-modules/patch/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchzip
+}:
+
+buildPythonPackage rec {
+  version = "1.16";
+  pname = "patch";
+
+  src = fetchzip {
+    url = "mirror://pypi/p/${pname}/${pname}-${version}.zip";
+    sha256 = "1nj55hvyvzax4lxq7vkyfbw91pianzr3hp7ka7j12pgjxccac50g";
+    stripRoot = false;
+  };
+
+  # No tests included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library to parse and apply unified diffs";
+    homepage = https://github.com/techtonik/python-patch/;
+    license = licenses.mit;
+    maintainers = [ maintainers.igsha ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pathos/default.nix b/pkgs/development/python-modules/pathos/default.nix
new file mode 100644
index 000000000000..081e5bb3aa48
--- /dev/null
+++ b/pkgs/development/python-modules/pathos/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, dill
+, pox
+, ppft
+, multiprocess
+}:
+
+buildPythonPackage rec {
+  pname = "pathos";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e35418af733bf434da83746d46acca94375d6e306b3df330b2a1808db026a188";
+  };
+
+  propagatedBuildInputs = [ dill pox ppft multiprocess ];
+
+  # Require network
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Parallel graph management and execution in heterogeneous computing";
+    homepage = http://www.cacr.caltech.edu/~mmckerns/pathos.htm;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pdfkit/default.nix b/pkgs/development/python-modules/pdfkit/default.nix
new file mode 100644
index 000000000000..c797c57c40f9
--- /dev/null
+++ b/pkgs/development/python-modules/pdfkit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pdfkit";
+  version = "0.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1p1m6gp51ql3wzjs2iwds8sc3hg1i48yysii9inrky6qc3s6q5vf";
+  };
+
+  # tests are not distributed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pdfkit;
+    description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pep8/default.nix b/pkgs/development/python-modules/pep8/default.nix
new file mode 100644
index 000000000000..9e31063b4611
--- /dev/null
+++ b/pkgs/development/python-modules/pep8/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "pep8";
+  version = "1.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a113d5f5ad7a7abacef9df5ec3f2af23a20a28005921577b15dd584d099d5900";
+  };
+
+  # FAIL: test_checkers_testsuite (testsuite.test_all.Pep8TestCase)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://pep8.readthedocs.org/";
+    description = "Python style guide checker";
+    license = licenses.mit;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/percol/default.nix b/pkgs/development/python-modules/percol/default.nix
new file mode 100644
index 000000000000..2ecb6de2d236
--- /dev/null
+++ b/pkgs/development/python-modules/percol/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "percol";
+  version = "0.0.8";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "169s5mhw1s60qbsd6pkf9bb2x6wfgx8hn8nw9d4qgc68qnnpp2cj";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mooz/percol;
+    description = "Adds flavor of interactive filtering to the traditional pipe concept of shell";
+    license = licenses.mit;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pexif/default.nix b/pkgs/development/python-modules/pexif/default.nix
new file mode 100644
index 000000000000..ac1c7de86820
--- /dev/null
+++ b/pkgs/development/python-modules/pexif/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pexif";
+  version = "0.15";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "45a3be037c7ba8b64bbfc48f3586402cc17de55bb9d7357ef2bc99954a18da3f";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A module for editing JPEG EXIF data";
+    homepage = http://www.benno.id.au/code/pexif/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
new file mode 100644
index 000000000000..65301a8c4067
--- /dev/null
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pg8000";
+  version = "1.10.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "188658db63c2ca931ae1bf0167b34efaac0ecc743b707f0118cc4b87e90ce488";
+  };
+
+  propagatedBuildInputs = [ pytz ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/realazthat/aiopg8000;
+    description = "PostgreSQL interface library, for asyncio";
+    maintainers = with maintainers; [ garbas domenkozar ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pgpdump/default.nix b/pkgs/development/python-modules/pgpdump/default.nix
new file mode 100644
index 000000000000..ea9ef0a156f0
--- /dev/null
+++ b/pkgs/development/python-modules/pgpdump/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pgpdump";
+  version = "1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s4nh8h7qsdj2yf29bspjs1zvxd4lcd11r6g11dp7fppgf2h0iqw";
+  };
+
+  # Disabling check because of: https://github.com/toofishes/python-pgpdump/issues/18
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python library for parsing PGP packets";
+    homepage = https://github.com/toofishes/python-pgpdump;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pickleshare/default.nix b/pkgs/development/python-modules/pickleshare/default.nix
new file mode 100644
index 000000000000..4ca421847658
--- /dev/null
+++ b/pkgs/development/python-modules/pickleshare/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pathpy
+, pathlib2
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  version = "0.7.4";
+  pname = "pickleshare";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "84a9257227dfdd6fe1b4be1319096c20eb85ff1e82c7932f36efccfe1b09737b";
+  };
+
+  propagatedBuildInputs = [ pathpy ]
+    ++ stdenv.lib.optional (pythonOlder "3.4") pathlib2;
+
+  # No proper test suite
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tiny 'shelve'-like database with concurrency support";
+    homepage = https://github.com/vivainio/pickleshare;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pid/default.nix b/pkgs/development/python-modules/pid/default.nix
new file mode 100644
index 000000000000..64f4ee882ab9
--- /dev/null
+++ b/pkgs/development/python-modules/pid/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pid";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0cylj8p25nwkdfgy4pzai21wyzmrxdqlwwbzqag9gb5qcjfdwk05";
+  };
+
+  buildInputs = [ nose ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Pidfile featuring stale detection and file-locking";
+    homepage = https://github.com/trbs/pid/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/piep/default.nix b/pkgs/development/python-modules/piep/default.nix
new file mode 100644
index 000000000000..671f631a40c6
--- /dev/null
+++ b/pkgs/development/python-modules/piep/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pygments
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.8.0";
+  pname = "piep";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wgkg1kc28jpya5k4zvbc9jmpa60b3d5c3gwxfbp15hw6smyqirj";
+  };
+
+  propagatedBuildInputs = [ pygments ];
+
+  meta = with stdenv.lib; {
+    description = "Bringing the power of python to stream editing";
+    homepage = https://github.com/timbertson/piep;
+    maintainers = with maintainers; [ timbertson ];
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
new file mode 100644
index 000000000000..3cc1ba3b00fd
--- /dev/null
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, nose
+, mock
+, pyyaml
+, unittest2
+, pyev
+, twisted
+, tornado
+}:
+
+buildPythonPackage rec {
+  pname = "pika";
+  version = "0.10.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nb4h08di432lv7dy2v9kpwgk0w92f24sqc2hw2s9vwr5b8v8xvj";
+  };
+
+  # Tests require twisted which is only availalble for python-2.x
+  doCheck = !isPy3k;
+
+  buildInputs = [ nose mock pyyaml unittest2 pyev ]
+    ++ stdenv.lib.optionals (!isPy3k) [ twisted tornado ];
+
+  meta = with stdenv.lib; {
+    description = "Pure-Python implementation of the AMQP 0-9-1 protocol";
+    homepage = https://pika.readthedocs.org;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pilkit/default.nix b/pkgs/development/python-modules/pilkit/default.nix
new file mode 100644
index 000000000000..eab44b3724a2
--- /dev/null
+++ b/pkgs/development/python-modules/pilkit/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pillow
+, nose_progressive
+, nose
+, mock
+, blessings
+}:
+
+buildPythonPackage rec {
+  pname = "pilkit";
+  version = "1.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "e00585f5466654ea2cdbf7decef9862cb00e16fd363017fa7ef6623a16b0d2c7";
+  };
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace 'nose==1.2.1' 'nose'
+  '';
+
+  # tests fail, see https://github.com/matthewwithanm/pilkit/issues/9
+  doCheck = false;
+
+  buildInputs = [ pillow nose_progressive nose mock blessings ];
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/matthewwithanm/pilkit/;
+    description = "A collection of utilities and processors for the Python Imaging Libary";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pip2nix/default.nix b/pkgs/development/python-modules/pip2nix/default.nix
new file mode 100644
index 000000000000..0e648f1ca184
--- /dev/null
+++ b/pkgs/development/python-modules/pip2nix/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, click
+, configobj
+, contexter
+, jinja2
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pip2nix";
+  version = "0.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ec9a71e09ac7f43cc7b6c9d386384eb7b5c331bf6ea0e72ca559d87979397a95";
+  };
+
+  propagatedBuildInputs = [ click configobj contexter jinja2 pytest ];
+
+  postPatch = ''
+    sed -i "s/'pip>=8,<10'/'pip'/" setup.py
+    sed -i "s/pip<10,>=8/pip/" ${pname}.egg-info/requires.txt
+  '';
+
+  # tests not included with pypi release
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Generate Nix expressions for Python packages";
+    homepage = https://github.com/johbo/pip2nix;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
new file mode 100644
index 000000000000..ee02f2cb5d23
--- /dev/null
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchhg
+, pkgs
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "20101207";
+  pname = "pivy";
+  disabled = isPy3k; # Judging from SyntaxError
+
+  src = fetchhg {
+    url = "https://bitbucket.org/Coin3D/pivy";
+    rev = "8eab90908f2a3adcc414347566f4434636202344";
+    sha256 = "18n14ha2d3j3ghg2f2aqnf2mks94nn7ma9ii7vkiwcay93zm82cf";
+  };
+
+  buildInputs = [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.libGLU_combined pkgs.xorg.libXi ];
+
+  meta = with stdenv.lib; {
+    homepage = http://pivy.coin3d.org/;
+    description = "A Python binding for Coin";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/posix_ipc/default.nix b/pkgs/development/python-modules/posix_ipc/default.nix
new file mode 100644
index 000000000000..0114c9b66eb5
--- /dev/null
+++ b/pkgs/development/python-modules/posix_ipc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "posix_ipc";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1jzg66708pi5n9w07fbz6rlxx30cjds9hp2yawjjfryafh1hg4ww";
+  };
+
+  meta = with stdenv.lib; {
+    description = "POSIX IPC primitives (semaphores, shared memory and message queues)";
+    license = licenses.bsd3;
+    homepage = http://semanchuk.com/philip/posix_ipc/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/power/default.nix b/pkgs/development/python-modules/power/default.nix
new file mode 100644
index 000000000000..a54bd025dc7c
--- /dev/null
+++ b/pkgs/development/python-modules/power/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "power";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7d7d60ec332acbe3a7d00379b45e39abf650bf7ee311d61da5ab921f52f060f0";
+  };
+
+  # Tests can't work because there is no power information available.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Cross-platform system power status information";
+    homepage = https://github.com/Kentzo/Power;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pox/default.nix b/pkgs/development/python-modules/pox/default.nix
new file mode 100644
index 000000000000..29a24343f256
--- /dev/null
+++ b/pkgs/development/python-modules/pox/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pox";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "22e97ac6d2918c754e65a9581dbe02e9d00ae4a54ca48d05118f87c1ea92aa19";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Utilities for filesystem exploration and automated builds";
+    license = licenses.bsd3;
+    homepage = http://www.cacr.caltech.edu/~mmckerns/pox.htm;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ppft/default.nix b/pkgs/development/python-modules/ppft/default.nix
new file mode 100644
index 000000000000..2a1dd73f96c7
--- /dev/null
+++ b/pkgs/development/python-modules/ppft/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "ppft";
+  version = "1.6.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6f99c861822884cb00badbd5f364ee32b90a157084a6768040793988c6b92bff";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    description = "Distributed and parallel python";
+    homepage = https://github.com/uqfoundation;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
new file mode 100644
index 000000000000..2ab922171444
--- /dev/null
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, glibcLocales
+}:
+
+buildPythonPackage rec {
+  pname = "prettytable";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "599bc5b4b9602e28294cf795733c889c26dd934aa7e0ee9cff9b905d4fbad188";
+  };
+
+  buildInputs = [ glibcLocales ];
+
+  preCheck = ''
+    export LANG="en_US.UTF-8"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+    homepage = http://code.google.com/p/prettytable/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/process-tests/default.nix b/pkgs/development/python-modules/process-tests/default.nix
new file mode 100644
index 000000000000..8f8bbc59d4fe
--- /dev/null
+++ b/pkgs/development/python-modules/process-tests/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "process-tests";
+  version = "1.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "65c9d7a0260f31c15b4a22a851757e61f7072d0557db5f8a976112fbe81ff7e9";
+  };
+
+  # No tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tools for testing processes";
+    license = licenses.bsd2;
+    homepage = https://github.com/ionelmc/python-process-tests;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ptest/default.nix b/pkgs/development/python-modules/ptest/default.nix
new file mode 100644
index 000000000000..0de6f98828fe
--- /dev/null
+++ b/pkgs/development/python-modules/ptest/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "ptest";
+  version =  "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "KarlGong";
+    repo = pname;
+    rev = version + "-release";
+    sha256 = "1r50lm6n59jzdwpp53n0c0hp3aj1jxn304bk5gh830226gsaf2hn";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Test classes and test cases using decorators, execute test cases by command line, and get clear reports";
+    homepage = https://pypi.python.org/pypi/ptest;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/purepng/default.nix b/pkgs/development/python-modules/purepng/default.nix
new file mode 100644
index 000000000000..49e4d93a5342
--- /dev/null
+++ b/pkgs/development/python-modules/purepng/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "purepng";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kcl7a6d7d59360fbz2jwfk6ha6pmqgn396962p4s62j893d2r0d";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python library for PNG image encoding/decoding";
+    homepage    = https://github.com/scondo/purepng;
+    license     = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pweave/default.nix b/pkgs/development/python-modules/pweave/default.nix
new file mode 100644
index 000000000000..980a1df6d05b
--- /dev/null
+++ b/pkgs/development/python-modules/pweave/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, matplotlib
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "Pweave";
+  version = "0.25";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1isqjz66c7vxdaqfwpkspki9p4054dsfx7pznwz28ik634hnj3qw";
+  };
+
+  buildInputs = [ mock pkgs.glibcLocales ];
+  propagatedBuildInputs = [ matplotlib ];
+
+  # fails due to trying to run CSS as test
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Scientific reports with embedded python computations with reST, LaTeX or markdown";
+    homepage = http://mpastell.com/pweave/ ;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index 14ffb8e2773a..5f41a88d26e8 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
 buildPythonPackage rec {
   pname = "py";
-  version = "1.5.4";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7";
+    sha256 = "bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/py3dns/default.nix b/pkgs/development/python-modules/py3dns/default.nix
new file mode 100644
index 000000000000..1e5b84aa262b
--- /dev/null
+++ b/pkgs/development/python-modules/py3dns/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "py3dns";
+  version = "3.1.1a";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0z0qmx9j1ivpgg54gqqmh42ljnzxaychc5inz2gbgv0vls765smz";
+  };
+
+  preConfigure = ''
+    sed -i \
+      -e '/import DNS/d' \
+      -e 's/DNS.__version__/"${version}"/g' \
+      setup.py
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python 3 DNS library";
+    homepage = https://launchpad.net/py3dns;
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyacoustid/default.nix b/pkgs/development/python-modules/pyacoustid/default.nix
new file mode 100644
index 000000000000..ba7879554a83
--- /dev/null
+++ b/pkgs/development/python-modules/pyacoustid/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, audioread
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyacoustid";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0117039cb116af245e6866e8e8bf3c9c8b2853ad087142bd0c2dfc0acc09d452";
+  };
+
+  propagatedBuildInputs = [ requests audioread ];
+
+  patches = [ ./pyacoustid-py3.patch ];
+
+  postPatch = ''
+    sed -i \
+        -e '/^FPCALC_COMMAND *=/s|=.*|= "${pkgs.chromaprint}/bin/fpcalc"|' \
+        acoustid.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bindings for Chromaprint acoustic fingerprinting";
+    homepage = "https://github.com/sampsyo/pyacoustid";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyacoustid-py3.patch b/pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch
index f79b35fd345e..f79b35fd345e 100644
--- a/pkgs/development/python-modules/pyacoustid-py3.patch
+++ b/pkgs/development/python-modules/pyacoustid/pyacoustid-py3.patch
diff --git a/pkgs/development/python-modules/pyalgotrade/default.nix b/pkgs/development/python-modules/pyalgotrade/default.nix
new file mode 100644
index 000000000000..b9752a71f515
--- /dev/null
+++ b/pkgs/development/python-modules/pyalgotrade/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, numpy
+, scipy
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pyalgotrade";
+  version = "0.16";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a253617254194b91cfebae7bfd184cb109d4e48a8c70051b9560000a2c0f94b3";
+  };
+
+  propagatedBuildInputs = [ numpy scipy pytz ];
+
+  meta = with stdenv.lib; {
+    description = "Python Algorithmic Trading";
+    homepage = http://gbeced.github.io/pyalgotrade/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyaudio/default.nix b/pkgs/development/python-modules/pyaudio/default.nix
new file mode 100644
index 000000000000..2f788966718c
--- /dev/null
+++ b/pkgs/development/python-modules/pyaudio/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "python-pyaudio";
+  version = "0.2.9";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bfd694272b3d1efc51726d0c27650b3c3ba1345f7f8fdada7e86c9751ce0f2a1";
+  };
+
+  buildInputs = [ pkgs.portaudio ];
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for PortAudio";
+    homepage = "http://people.csail.mit.edu/hubert/pyaudio/";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pybcrypt/default.nix b/pkgs/development/python-modules/pybcrypt/default.nix
new file mode 100644
index 000000000000..3f9f3b69a78a
--- /dev/null
+++ b/pkgs/development/python-modules/pybcrypt/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pybcrypt";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5fa13bce551468350d66c4883694850570f3da28d6866bb638ba44fe5eabda78";
+  };
+
+  meta = with stdenv.lib; {
+    description = "bcrypt password hashing and key derivation";
+    homepage = https://code.google.com/p/py-bcrypt2;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyblock/default.nix b/pkgs/development/python-modules/pyblock/default.nix
new file mode 100644
index 000000000000..1be0ad1d4c73
--- /dev/null
+++ b/pkgs/development/python-modules/pyblock/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, fetchurl
+, python
+, pkgs
+, isPy3k
+}:
+
+stdenv.mkDerivation rec {
+  name = "pyblock-${version}";
+  version = "0.53";
+  md5_path = "f6d33a8362dee358517d0a9e2ebdd044";
+
+  src = pkgs.fetchurl rec {
+    url = "http://src.fedoraproject.org/repo/pkgs/python-pyblock/"
+        + "${name}.tar.bz2/${md5_path}/${name}.tar.bz2";
+    sha256 = "f6cef88969300a6564498557eeea1d8da58acceae238077852ff261a2cb1d815";
+  };
+
+  postPatch = ''
+    sed -i -e 's|/usr/include/python|${python}/include/python|' \
+           -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
+  '';
+
+  buildInputs = [ python pkgs.lvm2 pkgs.dmraid ];
+
+  makeFlags = [
+    "USESELINUX=0"
+    "SITELIB=$(out)/${python.sitePackages}"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.centos.org/docs/5/html/5.4/Technical_Notes/python-pyblock.html;
+    description = "Interface for working with block devices";
+    license = licenses.gpl2Plus;
+    broken = isPy3k; # doesn't build on python 3, 2018-04-11
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyblosxom/default.nix b/pkgs/development/python-modules/pyblosxom/default.nix
new file mode 100644
index 000000000000..dfb3e94ba276
--- /dev/null
+++ b/pkgs/development/python-modules/pyblosxom/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pygments
+, markdown
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyblosxom";
+  version = "1.5.3";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "https://github.com/pyblosxom/pyblosxom/archive/v${version}.tar.gz";
+    sha256 = "0de9a7418f4e6d1c45acecf1e77f61c8f96f036ce034493ac67124626fd0d885";
+  };
+
+  propagatedBuildInputs = [ pygments markdown ];
+
+  # FAIL:test_generate_entry and test_time
+  # both tests fail due to time issue that doesn't seem to matter in practice
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "http://pyblosxom.github.io";
+    description = "File-based blogging engine";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
new file mode 100644
index 000000000000..2ba0e653e774
--- /dev/null
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, capnproto
+, cython
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pycapnp";
+  version = "0.6.3";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b3c5a1fcc93fd02fdc070aeccb89654b87f20bdc740f643cc6378925ed6d4c17";
+  };
+
+  buildInputs = [ capnproto cython ];
+
+  # import setuptools as soon as possible, to minimize monkeypatching mayhem.
+  postConfigure = ''
+    sed -i '3iimport setuptools' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = with maintainers; [ cstrahan ];
+    license = licenses.bsd2;
+    homepage = "http://jparyani.github.io/pycapnp/index.html";
+    broken = true; # 2018-04-11
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycarddav/default.nix b/pkgs/development/python-modules/pycarddav/default.nix
new file mode 100644
index 000000000000..c5c6182e4e06
--- /dev/null
+++ b/pkgs/development/python-modules/pycarddav/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+, vobject
+, lxml
+, requests
+, urwid
+, pyxdg
+}:
+
+buildPythonPackage rec {
+  version = "0.7.0";
+  pname = "pycarddav";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0avkrcpisfvhz103v7vmq2jd83hvmpqrb4mlbx6ikkk1wcvclsx8";
+  };
+
+  propagatedBuildInputs = [ vobject lxml requests urwid pyxdg ];
+
+  meta = with stdenv.lib; {
+    description = "Command-line interface carddav client";
+    homepage = http://lostpackets.de/pycarddav;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
new file mode 100644
index 000000000000..4c7dc52e79b9
--- /dev/null
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, nose
+, pkgs
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pycdio";
+  version = "2.0.0";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a1h0lmfl56a2a9xqhacnjclv81nv3906vdylalybxrk4bhrm3hj";
+  };
+
+  prePatch = "sed -i -e '/DRIVER_BSDI/d' pycdio.py";
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ setuptools nose pkgs.swig pkgs.libcdio ]
+    ++ stdenv.lib.optional stdenv.isDarwin pkgs.libiconv;
+
+  # Run tests using nosetests but first need to install the binaries
+  # to the root source directory where they can be found.
+  checkPhase = ''
+    ./setup.py install_lib -d .
+    nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gnu.org/software/libcdio/;
+    description = "Wrapper around libcdio (CD Input and Control library)";
+    maintainers = with maintainers; [ rycee ];
+    license = licenses.gpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pychef/default.nix b/pkgs/development/python-modules/pychef/default.nix
new file mode 100644
index 000000000000..f3c4109dd93d
--- /dev/null
+++ b/pkgs/development/python-modules/pychef/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, requests
+, mock
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname    = "PyChef";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zdz8lw545cd3a34cpib7mdwnad83gr2mrrxyj3v74h4zhwabhmg";
+  };
+
+  propagatedBuildInputs = [ six requests mock unittest2 ];
+
+  # FIXME
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/coderanger/pychef;
+    description = "Python implementation of a Chef API client";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index 69b8e2bc0d15..43a8e6f9f450 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
@@ -9,6 +9,14 @@ buildPythonPackage rec {
     sha256 = "cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a";
   };
 
+  patches = [
+    # https://github.com/PyCQA/pycodestyle/pull/801
+    (fetchpatch {
+      url = https://github.com/PyCQA/pycodestyle/commit/397463014fda3cdefe8d6c9d117ae16d878dc494.patch;
+      sha256 = "01zask2y2gim5il9lcmlhr2qaadv9v7kaw1y619l8xbjhpbq2zh8";
+    })
+  ];
+
   meta = with lib; {
     description = "Python style guide checker (formerly called pep8)";
     homepage = https://pycodestyle.readthedocs.io;
diff --git a/pkgs/development/python-modules/pycryptopp/default.nix b/pkgs/development/python-modules/pycryptopp/default.nix
new file mode 100644
index 000000000000..785da4f6dc88
--- /dev/null
+++ b/pkgs/development/python-modules/pycryptopp/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+, setuptoolsDarcs
+, darcsver
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pycryptopp";
+  version = "0.6.0.1206569328141510525648634803928199668821045408958";
+  disabled = isPy3k || isPyPy;  # see https://bitbucket.org/pypy/pypy/issue/1190/
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
+  };
+
+  # Prefer crypto++ library from the Nix store over the one that's included
+  # in the pycryptopp distribution.
+  preConfigure = "export PYCRYPTOPP_DISABLE_EMBEDDED_CRYPTOPP=1";
+
+  buildInputs = [ setuptoolsDarcs darcsver pkgs.cryptopp ];
+
+  meta = with stdenv.lib; {
+    homepage = http://allmydata.org/trac/pycryptopp;
+    description = "Python wrappers for the Crypto++ library";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pycurl2/default.nix b/pkgs/development/python-modules/pycurl2/default.nix
new file mode 100644
index 000000000000..9b04f2b6fcb4
--- /dev/null
+++ b/pkgs/development/python-modules/pycurl2/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, isPy3k
+, simplejson
+, unittest2
+, nose
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pycurl2";
+  version = "7.20.0";
+  disabled = isPy3k;
+
+  src = fetchgit {
+    url = "https://github.com/Lispython/pycurl.git";
+    rev = "0f00109950b883d680bd85dc6e8a9c731a7d0d13";
+    sha256 = "1qmw3cm93kxj94s71a8db9lwv2cxmr2wjv7kp1r8zildwdzhaw7j";
+  };
+
+  # error: (6, "Couldn't resolve host 'h.wrttn.me'")
+  doCheck = false;
+
+  buildInputs = [ pkgs.curl simplejson unittest2 nose ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pycurl2;
+    description = "A fork from original PycURL library that no maintained from 7.19.0";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydenticon/default.nix b/pkgs/development/python-modules/pydenticon/default.nix
new file mode 100644
index 000000000000..f217b68808c5
--- /dev/null
+++ b/pkgs/development/python-modules/pydenticon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pillow
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pydenticon";
+  version = "0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "035dawcspgjw2rksbnn863s7b0i9ac8cc1nshshvd1l837ir1czp";
+  };
+
+  propagatedBuildInputs = [ pillow mock ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/azaghal/pydenticon;
+    description = "Library for generating identicons. Port of Sigil (https://github.com/cupcake/sigil) with enhancements";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydispatcher/default.nix b/pkgs/development/python-modules/pydispatcher/default.nix
new file mode 100644
index 000000000000..29d464587a0a
--- /dev/null
+++ b/pkgs/development/python-modules/pydispatcher/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "2.0.5";
+  pname = "pydispatcher";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bswbmhlbqdxlgbxlb6xrlm4k253sg8nvpl1whgsys8p3fg0cw2m";
+  };
+
+  buildInputs = [ pytest ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://pydispatcher.sourceforge.net/;
+    description = "Signal-registration and routing infrastructure for use in multiple contexts";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydns/default.nix b/pkgs/development/python-modules/pydns/default.nix
new file mode 100644
index 000000000000..48bc3c3fa005
--- /dev/null
+++ b/pkgs/development/python-modules/pydns/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pydns";
+  version = "2.3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qnv7i9824nb5h9psj0rwzjyprwgfiwh5s5raa9avbqazy5hv5pi";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python DNS library";
+    homepage = http://pydns.sourceforge.net/;
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pydot_ng/default.nix b/pkgs/development/python-modules/pydot_ng/default.nix
new file mode 100644
index 000000000000..a96c03bed4f1
--- /dev/null
+++ b/pkgs/development/python-modules/pydot_ng/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyparsing
+, pytest
+, unittest2
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pydot_ng";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h8k8wlzvnb40v4js7afgfyhp3wasmb1kg4gr6z7ck63iv8fq864";
+  };
+
+  buildInputs = [ pytest unittest2 ];
+  propagatedBuildInputs = [ pkgs.graphviz pyparsing ];
+
+  checkPhase = ''
+    mkdir test/my_tests
+    py.test test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://pypi.python.org/pypi/pydot-ng";
+    description = "Python 3-compatible update of pydot, a Python interface to Graphviz's Dot";
+    license = licenses.mit;
+    maintainers = [ maintainers.bcdarwin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
new file mode 100644
index 000000000000..cb3e77f0e8d9
--- /dev/null
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pyelftools";
+  version = "0.24";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17259kf6hwwsmizr5myp9jv3k9g5i3dvmnl8m646pfd5hpb9gpg9";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} test/all_tests.py
+  '';
+
+  # Tests cannot pass against system-wide readelf
+  # https://github.com/eliben/pyelftools/issues/65
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library for analyzing ELF files and DWARF debugging information";
+    homepage = https://github.com/eliben/pyelftools;
+    license = licenses.publicDomain;
+    maintainers = [ maintainers.igsha ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
new file mode 100644
index 000000000000..f775612d90ff
--- /dev/null
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyenchant";
+  version = "1.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "25c9d2667d512f8fc4410465fdd2e868377ca07eb3d56e2b6e534a86281d64d3";
+  };
+
+  propagatedBuildInputs = [ pkgs.enchant ];
+
+  patchPhase = let
+    path_hack_script = "s|LoadLibrary(e_path)|LoadLibrary('${pkgs.enchant}/lib/' + e_path)|";
+  in ''
+    sed -i "${path_hack_script}" enchant/_enchant.py
+
+    # They hardcode a bad path for Darwin in their library search code
+    substituteInPlace enchant/_enchant.py --replace '/opt/local/lib/' ""
+  '';
+
+  # dictionaries needed for tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "pyenchant: Python bindings for the Enchant spellchecker";
+    homepage = https://pythonhosted.org/pyenchant/;
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyexcelerator/default.nix b/pkgs/development/python-modules/pyexcelerator/default.nix
new file mode 100644
index 000000000000..2dfb5831f7fe
--- /dev/null
+++ b/pkgs/development/python-modules/pyexcelerator/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcelerator";
+  version = "0.6.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18rcnc9f71lj06h8nppnv6idzb7xfmh2rp1zfqayskcg686lilrb";
+  };
+
+  disabled = isPy3k;
+
+  # No tests are included in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "library for generating Excel 97/2000/XP/2003 and OpenOffice Calc compatible spreadsheets.";
+    homepage = "https://sourceforge.net/projects/pyexcelerator";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ womfoo ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyexiv2/default.nix b/pkgs/development/python-modules/pyexiv2/default.nix
index 3384e981ff07..5b98a61735e2 100644
--- a/pkgs/development/python-modules/pyexiv2/default.nix
+++ b/pkgs/development/python-modules/pyexiv2/default.nix
@@ -10,13 +10,12 @@ buildPythonPackage rec {
     sha256 = "09r1ga6kj5cnmrldpkqzvdhh7xi7aad9g4fbcr1gawgsd9y13g0a";
   };
 
-  buildPhase = ''
+  preBuild = ''
     sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" src/SConscript
-    scons
   '';
-  installPhase = ''
+
+  preInstall = ''
     sed -i -e "s@    python_lib_path = get_python_lib(plat_specific=True)@    python_lib_path = \'/lib/python2.7/site-packages\'@" src/SConscript
-    scons install DESTDIR=$out
   '';
 
   buildInputs = [ python exiv2 scons boost ];
diff --git a/pkgs/development/python-modules/pyfantom/default.nix b/pkgs/development/python-modules/pyfantom/default.nix
new file mode 100644
index 000000000000..1abf04079880
--- /dev/null
+++ b/pkgs/development/python-modules/pyfantom/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+}:
+
+buildPythonPackage rec {
+  pname = "pyfantom";
+  version = "unstable-2013-12-18";
+
+  src = fetchgit {
+    url = "http://git.ni.fr.eu.org/pyfantom.git";
+    sha256 = "1m53n8bxslq5zmvcf7i1xzsgq5bdsf1z529br5ypmj5bg0s86j4q";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pyfantom.ni.fr.eu.org/;
+    description = "Wrapper for the LEGO Mindstorms Fantom Driver";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pygments-markdown-lexer/default.nix b/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
new file mode 100644
index 000000000000..65688cf17bb5
--- /dev/null
+++ b/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "pygments-markdown-lexer";
+  version = "0.1.0.dev39";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1pzb5wy23q3fhs0rqzasjnw6hdzwjngpakb73i98cn0b8lk8q4jc";
+  };
+
+  propagatedBuildInputs = [ pygments ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jhermann/pygments-markdown-lexer;
+    description = "Pygments Markdown Lexer – A Markdown lexer for Pygments to highlight Markdown code snippets";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix
new file mode 100644
index 000000000000..4b984566e919
--- /dev/null
+++ b/pkgs/development/python-modules/pyicu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, six
+, fetchpatch
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "PyICU";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pzss3l0b0vcsyr7wlqdd6pkcqldspajfgd9k2iijf6r152d2ln4";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = https://sources.debian.org/data/main/p/pyicu/2.0.3-1/debian/patches/icu_test.patch;
+      sha256 = "1iavdkyqixm9i753svl17barla93b7jzgkw09dn3hnggamx7zwx9";
+    })
+  ];
+
+  buildInputs = [ pkgs.icu pytest ];
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/PyICU/;
+    description = "Python extension wrapping the ICU C++ API";
+    license = licenses.mit;
+    platforms = platforms.linux; # Maybe other non-darwin Unix
+    maintainers = [ maintainers.rycee ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinotify/default.nix b/pkgs/development/python-modules/pyinotify/default.nix
new file mode 100644
index 000000000000..0e070d8a89d9
--- /dev/null
+++ b/pkgs/development/python-modules/pyinotify/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyinotify";
+  version = "0.9.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1x3i9wmzw33fpkis203alygfnrkcmq9w1aydcm887jh6frfqm6cw";
+  };
+
+  # No tests distributed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/seb-m/pyinotify/wiki;
+    description = "Monitor filesystems events on Linux platforms with inotify";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinputevent/default.nix b/pkgs/development/python-modules/pyinputevent/default.nix
new file mode 100644
index 000000000000..4709cf0d1167
--- /dev/null
+++ b/pkgs/development/python-modules/pyinputevent/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "pyinputevent";
+  version = "2016-10-18";
+
+  src = fetchFromGitHub {
+    owner = "ntzrmtthihu777";
+    repo = "pyinputevent";
+    rev = "d2075fa5db5d8a402735fe788bb33cf9fe272a5b";
+    sha256 = "0rkis0xp8f9jc00x7jb9kbvhdla24z1vl30djqa6wy6fx0cr6sib";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ntzrmtthihu777/pyinputevent";
+    description = "Python interface to the Input Subsystem's input_event and uinput";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyinsane2/default.nix b/pkgs/development/python-modules/pyinsane2/default.nix
new file mode 100644
index 000000000000..cf44538b746b
--- /dev/null
+++ b/pkgs/development/python-modules/pyinsane2/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, pillow
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyinsane2";
+  version = "2.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "00d1wqb3w9bn1rxb2dwmdqbar2lr96izq855l5vzprc17dkgip3j";
+  };
+
+  # This is needed by setup.py regardless of whether tests are enabled.
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ pillow ];
+
+  postPatch = ''
+    # pyinsane2 forks itself, so we need to re-inject the PYTHONPATH.
+    sed -i -e '/os.putenv.*PYINSANE_DAEMON/ {
+      a \        os.putenv("PYTHONPATH", ":".join(sys.path))
+    }' pyinsane2/sane/abstract_proc.py
+
+    sed -i -e 's,"libsane.so.1","${pkgs.sane-backends}/lib/libsane.so",' \
+      pyinsane2/sane/rawapi.py
+  '';
+
+  # Tests require a scanner to be physically connected, so let's just do a
+  # quick check whether initialization works.
+  checkPhase = ''
+    python -c 'import pyinsane2; pyinsane2.init()'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jflesch/pyinsane";
+    description = "Access and use image scanners";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pykickstart/default.nix b/pkgs/development/python-modules/pykickstart/default.nix
new file mode 100644
index 000000000000..98b26387d01d
--- /dev/null
+++ b/pkgs/development/python-modules/pykickstart/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, urlgrabber
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pykickstart";
+  version = "1.99.39";
+  md5_path = "d249f60aa89b1b4facd63f776925116d";
+
+  src = fetchurl rec {
+    url = "http://src.fedoraproject.org/repo/pkgs/pykickstart/"
+    + "${pname}-${version}.tar.gz/${md5_path}/${pname}-${version}.tar.gz";
+    sha256 = "e0d0f98ac4c5607e6a48d5c1fba2d50cc804de1081043f9da68cbfc69cad957a";
+  };
+
+  postPatch = ''
+    sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
+               key=lambda m: m.__name__)/" tests/baseclass.py
+  '';
+
+  propagatedBuildInputs = [ urlgrabber ];
+
+  checkPhase = ''
+    ${python.interpreter} tests/baseclass.py -vv
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://fedoraproject.org/wiki/Pykickstart";
+    description = "Read and write Fedora kickstart files";
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pykka/default.nix b/pkgs/development/python-modules/pykka/default.nix
new file mode 100644
index 000000000000..4fe7816d4fdc
--- /dev/null
+++ b/pkgs/development/python-modules/pykka/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+}:
+
+buildPythonPackage rec {
+  pname = "pykka";
+  version = "1.2.0";
+
+  src = fetchgit {
+    url = "https://github.com/jodal/pykka.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0qlfw1054ap0cha1m6dbnq51kjxqxaf338g7jwnwy33b3gr8x0hg";
+  };
+
+  # There are no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.pykka.org;
+    description = "A Python implementation of the actor model";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyliblo/default.nix b/pkgs/development/python-modules/pyliblo/default.nix
new file mode 100644
index 000000000000..9dc57aa9c727
--- /dev/null
+++ b/pkgs/development/python-modules/pyliblo/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyliblo";
+  version = "0.9.2";
+  disabled = isPyPy;
+
+  src = fetchurl {
+    url = "http://das.nasophon.de/download/${pname}-${version}.tar.gz";
+    sha256 = "382ee7360aa00aeebf1b955eef65f8491366657a626254574c647521b36e0eb0";
+  };
+
+  propagatedBuildInputs = [ pkgs.liblo ];
+
+  meta = with stdenv.lib; {
+    homepage = http://das.nasophon.de/pyliblo/;
+    description = "Python wrapper for the liblo OSC library";
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymaging/default.nix b/pkgs/development/python-modules/pymaging/default.nix
new file mode 100644
index 000000000000..34620c55c80f
--- /dev/null
+++ b/pkgs/development/python-modules/pymaging/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "pymaging";
+  version = "unstable-2016-11-16";
+
+  src = fetchFromGitHub {
+    owner = "ojii";
+    repo = "pymaging";
+    rev = "596a08fce5664e58d6e8c96847393fbe987783f2";
+    sha256 = "18g3n7kfrark30l4vzykh0gdbnfv5wb1zvvjbs17sj6yampypn38";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
+    homepage    = http://pymaging.rtfd.org;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymaging_png/default.nix b/pkgs/development/python-modules/pymaging_png/default.nix
new file mode 100644
index 000000000000..6756f9deee38
--- /dev/null
+++ b/pkgs/development/python-modules/pymaging_png/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pymaging
+}:
+
+buildPythonPackage rec {
+  name = "pymaging-png";
+  version = "unstable-2016-11-16";
+
+  src = fetchFromGitHub {
+    owner = "ojii";
+    repo = "pymaging-png";
+    rev = "83d85c44e4b2342818e6c068065e031a9f81bb9f";
+    sha256 = "1mknxvsq0lr1ffm8amzm3w2prn043c6ghqgpxlkw83r988p5fn57";
+  };
+
+  propagatedBuildInputs = [ pymaging ];
+
+  meta = with stdenv.lib; {
+    description = "Pure Python imaging library with Python 2.6, 2.7, 3.1+ support";
+    homepage    = https://github.com/ojii/pymaging-png/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pymongo/2_9_1.nix b/pkgs/development/python-modules/pymongo/2_9_1.nix
new file mode 100644
index 000000000000..181d99a93f6f
--- /dev/null
+++ b/pkgs/development/python-modules/pymongo/2_9_1.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pymongo";
+  version = "2.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nrr1fxyrlxd69bgxl7bvaj2j4z7v3zaciij5sbhxg0vqiz6ny50";
+  };
+
+  # Tests call a running mongodb instance
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mongodb/mongo-python-driver;
+    license = licenses.asl20;
+    description = "Python driver for MongoDB ";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pynac/default.nix b/pkgs/development/python-modules/pynac/default.nix
new file mode 100644
index 000000000000..0839cb1aa4a1
--- /dev/null
+++ b/pkgs/development/python-modules/pynac/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+}:
+
+buildPythonPackage rec {
+  pname = "pynac";
+  version = "0.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/pynac/pynac/pynac-0.2/pynac-0.2.tar.gz";
+    sha256 = "0avzqqcxl54karjmla9jbsyid98mva36lxahwmrsx5h40ys2ggxp";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/se-esss-litterbox/Pynac;
+    description = "A Python wrapper around the Dynac charged particle simulator";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pync/default.nix b/pkgs/development/python-modules/pync/default.nix
new file mode 100644
index 000000000000..ad02b3f2f2fc
--- /dev/null
+++ b/pkgs/development/python-modules/pync/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, dateutil
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version  = "1.4";
+  pname = "pync";
+  disabled = ! isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0lc1x0pai85avm1r452xnvxc12wijnhz87xv20yp3is9fs6rnkrh";
+  };
+
+  buildInputs = [ pkgs.coreutils ];
+  propagatedBuildInputs = [ dateutil ];
+
+  preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's|^\([ ]*\)self.bin_path.*$|\1self.bin_path = "${pkgs.terminal-notifier}/bin/terminal-notifier"|' build/lib/pync/TerminalNotifier.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python Wrapper for Mac OS 10.8 Notification Center";
+    homepage    = https://pypi.python.org/pypi/pync/1.4;
+    license     = licenses.mit;
+    platforms   = platforms.darwin;
+    maintainers = with maintainers; [ lovek323 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pynzb/default.nix b/pkgs/development/python-modules/pynzb/default.nix
new file mode 100644
index 000000000000..4225d30c6fe4
--- /dev/null
+++ b/pkgs/development/python-modules/pynzb/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pynzb";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0735b3889a1174bbb65418ee503629d3f5e4a63f04b16f46ffba18253ec3ef17";
+  };
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest -s pynzb -t .
+  '';
+
+  # Can't get them working
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ericflo/pynzb;
+    description = "Unified API for parsing NZB files";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyopengl/default.nix b/pkgs/development/python-modules/pyopengl/default.nix
new file mode 100644
index 000000000000..11a51f354d9f
--- /dev/null
+++ b/pkgs/development/python-modules/pyopengl/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "pyopengl";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf";
+  };
+
+  propagatedBuildInputs = [ pkgs.libGLU_combined pkgs.freeglut pillow ];
+
+  patchPhase = let
+    ext = stdenv.hostPlatform.extensions.sharedLibrary; in ''
+    substituteInPlace OpenGL/platform/glx.py \
+      --replace "'GL'" "'${pkgs.libGL}/lib/libGL${ext}'" \
+      --replace "'GLU'" "'${pkgs.libGLU}/lib/libGLU${ext}'" \
+      --replace "'glut'" "'${pkgs.freeglut}/lib/libglut${ext}'"
+    substituteInPlace OpenGL/platform/darwin.py \
+      --replace "'OpenGL'" "'${pkgs.libGL}/lib/libGL${ext}'" \
+      --replace "'GLUT'" "'${pkgs.freeglut}/lib/libglut${ext}'"
+  '';
+
+  # Need to fix test runner
+  # Tests have many dependencies
+  # Extension types could not be found.
+  # Should run test suite from $out/${python.sitePackages}
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pyopengl.sourceforge.net/;
+    description = "PyOpenGL, the Python OpenGL bindings";
+    longDescription = ''
+      PyOpenGL is the cross platform Python binding to OpenGL and
+      related APIs.  The binding is created using the standard (in
+      Python 2.5) ctypes library, and is provided under an extremely
+      liberal BSD-style Open-Source license.
+    '';
+    license = "BSD-style";
+    platforms = platforms.mesaPlatforms;
+  };
+
+
+}
diff --git a/pkgs/development/python-modules/pyparted/default.nix b/pkgs/development/python-modules/pyparted/default.nix
new file mode 100644
index 000000000000..1db09842fa98
--- /dev/null
+++ b/pkgs/development/python-modules/pyparted/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, pkgs
+, python
+}:
+
+buildPythonPackage rec {
+  name = "pyparted-${version}";
+  version = "3.10.7";
+  disabled = isPyPy;
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/rhinstaller/pyparted/archive/v${version}.tar.gz";
+    sha256 = "0c9ljrdggwawd8wdzqqqzrna9prrlpj6xs59b0vkxzip0jkf652r";
+  };
+
+  postPatch = ''
+    sed -i -e 's|mke2fs|${pkgs.e2fsprogs}/bin/mke2fs|' tests/baseclass.py
+    sed -i -e '
+      s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
+    ' tests/test__ped_ped.py
+  '' + stdenv.lib.optionalString stdenv.isi686 ''
+    # remove some integers in this test case which overflow on 32bit systems
+    sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
+      tests/test__ped_ped.py
+  '';
+
+  preConfigure = ''
+    PATH="${pkgs.parted}/sbin:$PATH"
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  propagatedBuildInputs = [ pkgs.parted ];
+
+  checkPhase = ''
+    patchShebangs Makefile
+    make test PYTHON=${python.executable}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://fedorahosted.org/pyparted/";
+    description = "Python interface for libparted";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix
new file mode 100644
index 000000000000..5842e1c510af
--- /dev/null
+++ b/pkgs/development/python-modules/pypdf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyPdf";
+  version = "1.13";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3aede4c3c9c6ad07c98f059f90db0b09ed383f7c791c46100f649e1cabda0e3b";
+  };
+
+  # Not supported. Package is no longer maintained.
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Pure-Python PDF toolkit";
+    homepage = "http://pybrary.net/pyPdf/";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
new file mode 100644
index 000000000000..1c3b908396ec
--- /dev/null
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, glibcLocales
+, python
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "PyPDF2";
+  version = "1.26.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+  buildInputs = [ glibcLocales ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s Tests
+  '';
+
+  # Tests broken on Python 3.x
+  doCheck = !(isPy3k);
+
+  meta = with stdenv.lib; {
+    description = "A Pure-Python library built as a PDF toolkit";
+    homepage = "http://mstamy2.github.com/PyPDF2/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ desiderius vrthra ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pypeg2/default.nix b/pkgs/development/python-modules/pypeg2/default.nix
new file mode 100644
index 000000000000..de2ddc98a8ed
--- /dev/null
+++ b/pkgs/development/python-modules/pypeg2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "2.15.2";
+  pname = "pypeg2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0v8ziaam2r637v94ra4dbjw6jzxz99gs5x4i585kgag1v204yb9b";
+  };
+
+  checkPhase = ''
+    # The tests assume that test_xmlast does not run before test_pyPEG2.
+    python -m unittest pypeg2.test.test_pyPEG2 pypeg2.test.test_xmlast
+  '';
+
+  #https://bitbucket.org/fdik/pypeg/issues/36/test-failures-on-py35
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "PEG parser interpreter in Python";
+    homepage = http://fdik.org/pyPEG;
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyplatec/default.nix b/pkgs/development/python-modules/pyplatec/default.nix
new file mode 100644
index 000000000000..a17c650e0f0e
--- /dev/null
+++ b/pkgs/development/python-modules/pyplatec/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "PyPlatec";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Library to simulate plate tectonics with Python bindings";
+    homepage    = https://github.com/Mindwerks/plate-tectonics;
+    license     = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyptlib/default.nix b/pkgs/development/python-modules/pyptlib/default.nix
new file mode 100644
index 000000000000..6349b56b4749
--- /dev/null
+++ b/pkgs/development/python-modules/pyptlib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyptlib";
+  version = "0.0.6";
+  disabled = isPyPy || isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01y6vbwncqb0hxlnin6whd9wrrm5my4qzjhk76fnix78v7ip515r";
+  };
+
+  doCheck = false;  # No such file or directory errors on 32bit
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.org/project/pyptlib/;
+    description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyqtgraph/default.nix b/pkgs/development/python-modules/pyqtgraph/default.nix
new file mode 100644
index 000000000000..5eb24f830c7d
--- /dev/null
+++ b/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, scipy
+, numpy
+, pyqt4
+, pyopengl
+}:
+
+buildPythonPackage rec {
+  pname = "pyqtgraph";
+  version = "0.9.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "188pcxf3sxxjf0aipjn820lx2rf9f42zzp0sibmcl90955a3ipf1";
+  };
+
+  propagatedBuildInputs = [ scipy numpy pyqt4 pyopengl ];
+
+  doCheck = false;  # "PyQtGraph requires either PyQt4 or PySide; neither package could be imported."
+
+  meta = with stdenv.lib; {
+    description = "Scientific Graphics and GUI Library for Python";
+    homepage = http://www.pyqtgraph.org/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
new file mode 100644
index 000000000000..70f144b62581
--- /dev/null
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, cssselect
+, lxml
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "pyquery";
+  version = "1.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "00p6f1dfma65192hc72dxd506491lsq3g5wgxqafi1xpg2w1xia6";
+  };
+
+  propagatedBuildInputs = [ cssselect lxml webob ];
+
+  # circular dependency on webtest
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gawel/pyquery;
+    description = "A jquery-like library for python";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyreport/default.nix b/pkgs/development/python-modules/pyreport/default.nix
new file mode 100644
index 000000000000..d75119b6e328
--- /dev/null
+++ b/pkgs/development/python-modules/pyreport/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyreport";
+  version = "0.3.4c";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1584607596b7b310bf0b6ce79f424bd44238a017fd870aede11cd6732dbe0d4d";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pyreport;
+    license = licenses.bsd0;
+    description = "Pyreport makes notes out of a python script";
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
new file mode 100644
index 000000000000..376b306cbb2b
--- /dev/null
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, pytest
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "pyrsistent";
+  version = "0.11.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jgyhkkq36wn36rymn4jiyqh2vdslmradq4a2mjkxfbk2cz6wpi5";
+  };
+
+  propagatedBuildInputs = [ six ];
+  buildInputs = [ pytest hypothesis ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/tobgu/pyrsistent/;
+    description = "Persistent/Functional/Immutable data structures";
+    license = licenses.mit;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyrss2gen/default.nix b/pkgs/development/python-modules/pyrss2gen/default.nix
new file mode 100644
index 000000000000..1c65d7ca5c71
--- /dev/null
+++ b/pkgs/development/python-modules/pyrss2gen/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "PyRSS2Gen";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rvf5jw9hknqz02rp1vg8abgb1lpa0bc65l7ylmlillqx7bswq3r";
+  };
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.dalkescientific.om/Python/PyRSS2Gen.html;
+    description = "Library for generating RSS 2.0 feeds";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
new file mode 100644
index 000000000000..1e9ce18afb9a
--- /dev/null
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, repoze_who
+, paste
+, cryptography
+, pycrypto
+, pyopenssl
+, ipaddress
+, six
+, cffi
+, idna
+, enum34
+, pytz
+, setuptools
+, zope_interface
+, dateutil
+, requests
+, pyasn1
+, webob
+, decorator
+, pycparser
+, defusedxml
+, Mako
+, pytest
+, memcached
+, pymongo
+, mongodict
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pysaml2";
+  version = "3.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y2iw1dddcvi13xjh3l52z1mvnrbc41ik9k4nn7lwj8x5kimnk9n";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "CVE-2016-10127.patch";
+      url = "https://sources.debian.net/data/main/p/python-pysaml2/3.0.0-5/debian/patches/fix-xxe-in-xml-parsing.patch";
+      sha256 = "184lkwdayjqiahzsn4yp15parqpmphjsb1z7zwd636jvarxqgs2q";
+    })
+  ];
+
+  propagatedBuildInputs = [ repoze_who paste cryptography pycrypto pyopenssl ipaddress six cffi idna enum34 pytz setuptools zope_interface dateutil requests pyasn1 webob decorator pycparser defusedxml ];
+  buildInputs = [ Mako pytest memcached pymongo mongodict pkgs.xmlsec ];
+
+  preConfigure = ''
+    sed -i 's/pymongo==3.0.1/pymongo/' setup.py
+  '';
+
+  # 16 failed, 427 passed, 17 error in 88.85 seconds
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/rohe/pysaml2";
+    description = "Python implementation of SAML Version 2 Standard";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
new file mode 100644
index 000000000000..cf63d3660ef5
--- /dev/null
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, six
+, enum34
+, pathlib
+, ordereddict
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyScss";
+  version = "1.3.5";
+
+  src = fetchFromGitHub {
+    sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
+    rev = "v1.3.5";
+    repo = "pyScss";
+    owner = "Kronuz";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ six ]
+    ++ (stdenv.lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
+    ++ (stdenv.lib.optionals (pythonOlder "2.7") [ ordereddict ]);
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Scss compiler for Python";
+    homepage = http://pyscss.readthedocs.org/en/latest/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysendfile/default.nix b/pkgs/development/python-modules/pysendfile/default.nix
new file mode 100644
index 000000000000..b49ec5030f9a
--- /dev/null
+++ b/pkgs/development/python-modules/pysendfile/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pysendfile";
+  version = "2.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05qf0m32isflln1zjgxlpw0wf469lj86vdwwqyizp1h94x5l22ji";
+  };
+
+  checkPhase = ''
+    # this test takes too long
+    sed -i 's/test_big_file/noop/' test/test_sendfile.py
+    ${python.executable} test/test_sendfile.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/giampaolo/pysendfile";
+    description = "A Python interface to sendfile(2)";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysftp/default.nix b/pkgs/development/python-modules/pysftp/default.nix
new file mode 100644
index 000000000000..0ed5790a5197
--- /dev/null
+++ b/pkgs/development/python-modules/pysftp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, paramiko
+}:
+
+buildPythonPackage rec {
+  pname = "pysftp";
+  version = "0.2.9";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0jl5qix5cxzrv4lb8rfpjkpcghbkacnxkb006ikn7mkl5s05mxgv";
+  };
+
+  propagatedBuildInputs = [ paramiko ];
+
+  meta = with stdenv.lib; {
+    homepage = https://bitbucket.org/dundeemt/pysftp;
+    description = "A friendly face on SFTP";
+    license = licenses.mit;
+    longDescription = ''
+      A simple interface to SFTP. The module offers high level abstractions
+      and task based routines to handle your SFTP needs. Checkout the Cook
+      Book, in the docs, to see what pysftp can do for you.
+    '';
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysmi/default.nix b/pkgs/development/python-modules/pysmi/default.nix
new file mode 100644
index 000000000000..0471e948f2ff
--- /dev/null
+++ b/pkgs/development/python-modules/pysmi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, ply
+}:
+
+buildPythonPackage rec {
+  version = "0.0.7";
+  pname = "pysmi";
+
+ src = fetchPypi {
+    inherit pname version;
+    sha256 = "05h1lv2a687b9qjc399w6728ildx7majbn338a0c4k3gw6wnv7wr";
+  };
+
+  propagatedBuildInputs = [ ply ];
+
+  # Tests require pysnmp, which in turn requires pysmi => infinite recursion
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pysmi.sf.net;
+    description = "SNMP SMI/MIB Parser";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix
new file mode 100644
index 000000000000..22fdf17b3b65
--- /dev/null
+++ b/pkgs/development/python-modules/pysnmp/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyasn1
+, pycrypto
+, pysmi
+}:
+
+buildPythonPackage rec {
+  version = "4.3.2";
+  pname = "pysnmp";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xw925f3p02vdpb3f0ls60qj59w44aiyfs3s0nhdr9vsy4fxhavw";
+  };
+
+  # NameError: name 'mibBuilder' is not defined
+  doCheck = false;
+
+  propagatedBuildInputs = [ pyasn1 pycrypto pysmi ];
+
+  meta = with stdenv.lib; {
+    homepage = http://pysnmp.sf.net;
+    description = "A pure-Python SNMPv1/v2c/v3 library";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysocks/default.nix b/pkgs/development/python-modules/pysocks/default.nix
new file mode 100644
index 000000000000..83437cd1201a
--- /dev/null
+++ b/pkgs/development/python-modules/pysocks/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pysocks";
+  version = "1.6.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h9zwr8z9j6l313ns335irjrkk6qnk4qzvwmjqygrp7mbwi9lh82";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "SOCKS module for Python";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyspotify/default.nix b/pkgs/development/python-modules/pyspotify/default.nix
new file mode 100644
index 000000000000..39671041d8a6
--- /dev/null
+++ b/pkgs/development/python-modules/pyspotify/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, cffi
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyspotify";
+  version = "2.0.5";
+
+  src = fetchurl {
+    url = "https://github.com/mopidy/pyspotify/archive/v${version}.tar.gz";
+    sha256 = "1ilbz2w1gw3f1bpapfa09p84dwh08bf7qcrkmd3aj0psz57p2rls";
+  };
+
+  propagatedBuildInputs = [ cffi ];
+  buildInputs = [ pkgs.libspotify ];
+
+  # python zip complains about old timestamps
+  preConfigure = ''
+    find -print0 | xargs -0 touch
+  '';
+
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    find "$out" -name _spotify.so -exec \
+        install_name_tool -change \
+        @loader_path/../Frameworks/libspotify.framework/libspotify \
+        ${pkgs.libspotify}/lib/libspotify.dylib \
+        {} \;
+  '';
+
+  # There are no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage    = http://pyspotify.mopidy.com;
+    description = "A Python interface to Spotify’s online music streaming service";
+    license     = licenses.unfree;
+    maintainers = with maintainers; [ lovek323 rickynils ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysqlite/default.nix b/pkgs/development/python-modules/pysqlite/default.nix
new file mode 100644
index 000000000000..c1118aeeecd7
--- /dev/null
+++ b/pkgs/development/python-modules/pysqlite/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pysqlite";
+  version = "2.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490";
+  };
+
+  # Need to use the builtin sqlite3 on Python 3
+  disabled = isPy3k;
+
+  # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
+  # it contains is not taken into account.  Thus, we must explicitly make
+  # it a propagated input.
+  propagatedBuildInputs = [ pkgs.sqlite ];
+
+  patchPhase = ''
+    substituteInPlace "setup.cfg"                                     \
+            --replace "/usr/local/include" "${pkgs.sqlite.dev}/include"   \
+            --replace "/usr/local/lib" "${pkgs.sqlite.out}/lib"
+    ${stdenv.lib.optionalString (!stdenv.isDarwin) ''export LDSHARED="$CC -pthread -shared"''}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://pysqlite.org/;
+    description = "Python bindings for the SQLite embedded relational database engine";
+    longDescription = ''
+      pysqlite is a DB-API 2.0-compliant database interface for SQLite.
+
+      SQLite is a relational database management system contained in
+      a relatively small C library.  It is a public domain project
+      created by D. Richard Hipp.  Unlike the usual client-server
+      paradigm, the SQLite engine is not a standalone process with
+      which the program communicates, but is linked in and thus
+      becomes an integral part of the program.  The library
+      implements most of SQL-92 standard, including transactions,
+      triggers and most of complex queries.
+
+      pysqlite makes this powerful embedded SQL engine available to
+      Python programmers.  It stays compatible with the Python
+      database API specification 2.0 as much as possible, but also
+      exposes most of SQLite's native API, so that it is for example
+      possible to create user-defined SQL functions and aggregates
+      in Python.
+    '';
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pysvn/default.nix b/pkgs/development/python-modules/pysvn/default.nix
new file mode 100644
index 000000000000..2dcb7908522a
--- /dev/null
+++ b/pkgs/development/python-modules/pysvn/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, isPy3k
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "pysvn";
+  version = "1.8.0";
+  disabled = isPy3k;
+  format = "other";
+
+  src = fetchurl {
+    url = "http://pysvn.barrys-emacs.org/source_kits/${pname}-${version}.tar.gz";
+    sha256 = "0srjr2qgxfs69p65d9vvdib2lc142x10w8afbbdrqs7dhi46yn9r";
+  };
+
+  buildInputs = [ pkgs.subversion pkgs.apr pkgs.aprutil pkgs.expat pkgs.neon pkgs.openssl ]
+    ++ (if stdenv.isLinux then [pkgs.e2fsprogs] else []);
+
+  # There seems to be no way to pass that path to configure.
+  NIX_CFLAGS_COMPILE="-I${pkgs.aprutil.dev}/include/apr-1";
+
+  preConfigure = ''
+    cd Source
+    ${python.interpreter} setup.py backport
+    ${python.interpreter} setup.py configure \
+      --apr-inc-dir=${pkgs.apr.dev}/include \
+      --apu-inc-dir=${pkgs.aprutil.dev}/include \
+      --apr-lib-dir=${pkgs.apr.out}/lib \
+      --svn-lib-dir=${pkgs.subversion.out}/lib \
+      --svn-bin-dir=${pkgs.subversion.out}/bin \
+      --svn-root-dir=${pkgs.subversion.dev}
+  '' + (if !stdenv.isDarwin then "" else ''
+    sed -i -e 's|libpython2.7.dylib|lib/libpython2.7.dylib|' Makefile
+  '');
+
+  checkPhase = "make -C ../Tests";
+
+  installPhase = ''
+    dest=$(toPythonPath $out)/pysvn
+    mkdir -p $dest
+    cp pysvn/__init__.py $dest/
+    cp pysvn/_pysvn*.so $dest/
+    mkdir -p $out/share/doc
+    mv -v ../Docs $out/share/doc/pysvn-1.7.2
+    rm -v $out/share/doc/pysvn-1.7.2/generate_cpp_docs_from_html_docs.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for Subversion";
+    homepage = http://pysvn.tigris.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index cdfdb8a64c95..9412a750a9ab 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -3,7 +3,7 @@
 , atomicwrites, mock, writeText, pathlib2
 }:
 buildPythonPackage rec {
-  version = "3.7.4";
+  version = "3.9.3";
   pname = "pytest";
 
   preCheck = ''
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d7c49e931316cc7d1638a3e5f54f5d7b4e5225972b3c9838f3584788d27f349";
+    sha256 = "a9e5e8d7ab9d5b0747f37740276eb362e6a76275d76cebbb52c6049d93b475db";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix
new file mode 100644
index 000000000000..d1780fc782b5
--- /dev/null
+++ b/pkgs/development/python-modules/python-etcd/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, mock
+, pyopenssl
+, urllib3
+, dnspython
+}:
+
+buildPythonPackage rec {
+  pname = "python-etcd";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf53262b3890d185fe637eed15fe39c8d7a8261864ddcd7037b22c961456d7fc";
+  };
+
+  buildInputs = [ nose mock pyopenssl ];
+
+  propagatedBuildInputs = [ urllib3 dnspython ];
+
+  postPatch = ''
+    sed -i '19s/dns/"dnspython"/' setup.py
+  '';
+
+  # Some issues with etcd not in path even though most tests passed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A python client for Etcd";
+    homepage = https://github.com/jplana/python-etcd;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
new file mode 100644
index 000000000000..8509caa27944
--- /dev/null
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, mock
+, pbr
+, pyyaml
+, six
+, multi_key_dict
+, testtools
+, testscenarios
+, testrepository
+, kerberos
+}:
+
+buildPythonPackage rec {
+  pname = "python-jenkins";
+  version = "0.4.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n8ikvd9jf4dlki7nqlwjlsn8wpsx4x7wg4h3d6bkvyvhwwf8yqf";
+  };
+
+  patchPhase = ''
+    sed -i 's@python@${python.interpreter}@' .testr.conf
+  '';
+
+  buildInputs = [ mock ];
+  propagatedBuildInputs = [ pbr pyyaml six multi_key_dict testtools testscenarios testrepository kerberos ];
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for the remote Jenkins API";
+    homepage = https://pypi.python.org/pypi/python-jenkins;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-libarchive/default.nix b/pkgs/development/python-modules/python-libarchive/default.nix
new file mode 100644
index 000000000000..bae94191fc03
--- /dev/null
+++ b/pkgs/development/python-modules/python-libarchive/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "3.1.2-1";
+  pname = "libarchive";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
+    sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
+  };
+
+  propagatedBuildInputs = [ pkgs.libarchive.lib ];
+
+  meta = with stdenv.lib; {
+    description = "Multi-format archive and compression library";
+    homepage = https://libarchive.org/;
+    license = licenses.bsd0;
+    broken = true;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python-wifi/default.nix b/pkgs/development/python-modules/python-wifi/default.nix
new file mode 100644
index 000000000000..7e4f2ebccf05
--- /dev/null
+++ b/pkgs/development/python-modules/python-wifi/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "python-wifi";
+  version = "0.6.1";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "tar.bz2";
+    sha256 = "149c3dznb63d82143cz5hqdim0mqjysz6p3yk0zv271vq3xnmzvv";
+  };
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "Read & write wireless card capabilities using the Linux Wireless Extensions";
+    homepage = http://pythonwifi.tuxfamily.org/;
+    # From the README: "pythonwifi is licensed under LGPLv2+, however, the
+    # examples (e.g. iwconfig.py and iwlist.py) are licensed under GPLv2+."
+    license = with licenses; [ lgpl2Plus gpl2Plus ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/python3pika/default.nix b/pkgs/development/python-modules/python3pika/default.nix
new file mode 100644
index 000000000000..4f75acff02ec
--- /dev/null
+++ b/pkgs/development/python-modules/python3pika/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, nose
+, mock
+, pyyaml
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "python3-pika";
+  version = "0.9.14";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c3hifwvn04kvlja88iawf0awyz726jynwnpcb6gn7376b4nfch7";
+  };
+
+  # Unit tests adds dependencies on pyev, tornado and twisted (and twisted is disabled for Python 3)
+  doCheck = false;
+
+  buildInputs = [ nose mock pyyaml ];
+  propagatedBuildInputs = [ unittest2 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pika.readthedocs.org/;
+    description = "Pika Python AMQP Client Library";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python_keyczar/default.nix b/pkgs/development/python-modules/python_keyczar/default.nix
new file mode 100644
index 000000000000..b2cbe101f3d2
--- /dev/null
+++ b/pkgs/development/python-modules/python_keyczar/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyasn1
+, pycrypto
+}:
+
+buildPythonPackage rec {
+  pname = "python-keyczar";
+  version = "0.71c";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18mhiwqq6vp65ykmi8x3i5l3gvrvrrr8z2kv11z1rpixmyr7sw1p";
+  };
+
+  buildInputs = [ pyasn1 pycrypto ];
+
+  meta = with stdenv.lib; {
+    description = "Toolkit for safe and simple cryptography";
+    homepage    = https://pypi.python.org/pypi/python-keyczar;
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python_mimeparse/default.nix b/pkgs/development/python-modules/python_mimeparse/default.nix
new file mode 100644
index 000000000000..755a73d29090
--- /dev/null
+++ b/pkgs/development/python-modules/python_mimeparse/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-mimeparse";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w";
+  };
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
+    homepage = https://code.google.com/p/mimeparse/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/python_statsd/default.nix b/pkgs/development/python-modules/python_statsd/default.nix
new file mode 100644
index 000000000000..744894212c71
--- /dev/null
+++ b/pkgs/development/python-modules/python_statsd/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, mock
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "python-statsd";
+  version = "1.6.0";
+  disabled = isPy3k;  # next release will be py3k compatible
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3d2fc153e0d894aa9983531ef47d20d75bd4ee9fd0e46a9d82f452dde58a0a71";
+  };
+
+  buildInputs = [ mock nose coverage ];
+
+  meta = with stdenv.lib; {
+    description = "A client for Etsy's node-js statsd server";
+    homepage = https://github.com/WoLpH/python-statsd;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyutil/default.nix b/pkgs/development/python-modules/pyutil/default.nix
new file mode 100644
index 000000000000..8f875acac1bc
--- /dev/null
+++ b/pkgs/development/python-modules/pyutil/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptoolsDarcs
+, setuptoolsTrial
+, simplejson
+, zbase32
+, argparse
+, twisted
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "pyutil";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fsg9yz5mi2sb0h6c1vvcqchx56i89nbvdb5gfgv1ia3b2w5ra8c";
+  };
+
+  buildInputs = [ setuptoolsDarcs setuptoolsTrial ] ++ (if doCheck then [ simplejson ] else []);
+  propagatedBuildInputs = [ zbase32 argparse twisted ];
+
+  # Tests fail because they try to write new code into the twisted
+  # package, apparently some kind of plugin.
+  doCheck = false;
+
+  prePatch = stdenv.lib.optionalString isPyPy ''
+    grep -rl 'utf-8-with-signature-unix' ./ | xargs sed -i -e "s|utf-8-with-signature-unix|utf-8|g"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pyutil, a collection of mature utilities for Python programmers";
+
+    longDescription = ''
+      These are a few data structures, classes and functions which
+      we've needed over many years of Python programming and which
+      seem to be of general use to other Python programmers. Many of
+      the modules that have existed in pyutil over the years have
+      subsequently been obsoleted by new features added to the
+      Python language or its standard library, thus showing that
+      we're not alone in wanting tools like these.
+    '';
+
+    homepage = http://allmydata.org/trac/pyutil;
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyuv/default.nix b/pkgs/development/python-modules/pyuv/default.nix
new file mode 100644
index 000000000000..04e2c2f08185
--- /dev/null
+++ b/pkgs/development/python-modules/pyuv/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "pyuv";
+  version = "1.2.0";
+  disabled = isPyPy;  # see https://github.com/saghul/pyuv/issues/49
+
+  src = pkgs.fetchurl {
+    url = "https://github.com/saghul/pyuv/archive/${pname}-${version}.tar.gz";
+    sha256 = "19yl1l5l6dq1xr8xcv6dhx1avm350nr4v2358iggcx4ma631rycx";
+  };
+
+  patches = [ ./pyuv-external-libuv.patch ];
+
+  buildInputs = [ pkgs.libuv ];
+
+  meta = with stdenv.lib; {
+    description = "Python interface for libuv";
+    homepage = https://github.com/saghul/pyuv;
+    repositories.git = git://github.com/saghul/pyuv.git;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyuv-external-libuv.patch b/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch
index 41e169acd5f5..41e169acd5f5 100644
--- a/pkgs/development/python-modules/pyuv-external-libuv.patch
+++ b/pkgs/development/python-modules/pyuv/pyuv-external-libuv.patch
diff --git a/pkgs/development/python-modules/pywebkitgtk/default.nix b/pkgs/development/python-modules/pywebkitgtk/default.nix
new file mode 100644
index 000000000000..5448f5c6951d
--- /dev/null
+++ b/pkgs/development/python-modules/pywebkitgtk/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pkgs
+, pygtk
+}:
+
+buildPythonPackage rec {
+  pname = "pywebkitgtk";
+  version = "1.1.8";
+  format = "other";
+
+  src = fetchurl {
+    url = "http://pywebkitgtk.googlecode.com/files/${pname}-${version}.tar.bz2";
+    sha256 = "1svlwyl61rvbqbcbalkg6pbf38yjyv7qkq9sx4x35yk69lscaac2";
+  };
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ pygtk pkgs.gtk2 pkgs.libxml2 pkgs.libxslt pkgs.libsoup pkgs.webkitgtk24x-gtk2 pkgs.icu ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://code.google.com/p/pywebkitgtk/";
+    description = "Python bindings for the WebKit GTK+ port";
+    license = licenses.lgpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyx/default.nix b/pkgs/development/python-modules/pyx/default.nix
new file mode 100644
index 000000000000..a377845563aa
--- /dev/null
+++ b/pkgs/development/python-modules/pyx/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "pyx";
+  version = "0.14.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05d1b7fc813379d2c12fcb5bd0195cab522b5aabafac88f72913f1d47becd912";
+  };
+
+  disabled = !isPy3k;
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python package for the generation of PostScript, PDF, and SVG files";
+    homepage = http://pyx.sourceforge.net/;
+    license = with licenses; [ gpl2 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/qpid-python/default.nix b/pkgs/development/python-modules/qpid-python/default.nix
new file mode 100644
index 000000000000..713e9db566e4
--- /dev/null
+++ b/pkgs/development/python-modules/qpid-python/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "qpid-python";
+  version = "0.32";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://www.us.apache.org/dist/qpid/${version}/${pname}-${version}.tar.gz";
+    sha256 = "09hdfjgk8z4s3dr8ym2r6xn97j1f9mkb2743pr6zd0bnj01vhsv4";
+  };
+
+  # needs a broker running and then ./qpid-python-test
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://qpid.apache.org/;
+    description = "Python client implementation and AMQP conformance tests for Apache Qpid";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/qrcode/default.nix b/pkgs/development/python-modules/qrcode/default.nix
new file mode 100644
index 000000000000..173f3f579b1d
--- /dev/null
+++ b/pkgs/development/python-modules/qrcode/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, pillow
+, pymaging_png
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "qrcode";
+  version = "5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kljfrfq0c2rmxf8am57333ia41kd0snbm2rnqbdy816hgpcq5a1";
+  };
+
+  propagatedBuildInputs = [ six pillow pymaging_png ];
+  checkInputs = [ mock ];
+
+  meta = with stdenv.lib; {
+    description = "Quick Response code generation for Python";
+    homepage = "https://pypi.python.org/pypi/qrcode";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/qscintilla/default.nix b/pkgs/development/python-modules/qscintilla/default.nix
new file mode 100644
index 000000000000..c4ea8ff2e734
--- /dev/null
+++ b/pkgs/development/python-modules/qscintilla/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, disabledIf
+, isPy3k
+, isPyPy
+, pkgs
+, python
+, pyqt4
+}:
+
+disabledIf (isPy3k || isPyPy)
+  (buildPythonPackage rec {
+    # TODO: Qt5 support
+    name = "qscintilla-${version}";
+    version = pkgs.qscintilla.version;
+    format = "other";
+
+    src = pkgs.qscintilla.src;
+
+    buildInputs = [ pkgs.xorg.lndir pyqt4.qt pyqt4 ];
+
+    preConfigure = ''
+      mkdir -p $out
+      lndir ${pyqt4} $out
+      rm -rf "$out/nix-support"
+      cd Python
+      ${python.executable} ./configure-old.py \
+          --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \
+          --apidir $out/api/${python.libPrefix} \
+          -n ${pkgs.qscintilla}/include \
+          -o ${pkgs.qscintilla}/lib \
+          --sipdir $out/share/sip
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A Python binding to QScintilla, Qt based text editing control";
+      license = licenses.lgpl21Plus;
+      maintainers = with maintainers; [ danbst ];
+      platforms = platforms.unix;
+    };
+  })
diff --git a/pkgs/development/python-modules/qserve/default.nix b/pkgs/development/python-modules/qserve/default.nix
new file mode 100644
index 000000000000..ad1a7fd2ca36
--- /dev/null
+++ b/pkgs/development/python-modules/qserve/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "qserve";
+  version = "0.2.8";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "0b04b2d4d11b464ff1efd42a9ea9f8136187d59f4076f57c9ba95361d41cd7ed";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Job queue server";
+    homepage = "https://github.com/pediapress/qserve";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/queuelib/default.nix b/pkgs/development/python-modules/queuelib/default.nix
new file mode 100644
index 000000000000..e80235bcdad6
--- /dev/null
+++ b/pkgs/development/python-modules/queuelib/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "queuelib";
+  version = "1.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a6829918157ed433fafa87b0bb1e93e3e63c885270166db5884a02c34c86f914";
+  };
+
+  buildInputs = [ pytest ];
+
+  meta = with stdenv.lib; {
+    description = "A collection of persistent (disk-based) queues for Python";
+    homepage = "https://github.com/scrapy/queuelib";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ drewkett ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
new file mode 100644
index 000000000000..4a8460ddfdbe
--- /dev/null
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, numpy
+, scipy
+, matplotlib
+, pyqt4
+, cython
+, pkgs
+, nose
+}:
+
+buildPythonPackage rec {
+  name = "qutip";
+  version = "2.2.0";
+
+  src = fetchurl {
+    url = "https://qutip.googlecode.com/files/QuTiP-2.2.0.tar.gz";
+    sha256 = "a26a639d74b2754b3a1e329d91300e587e8c399d8a81d8f18a4a74c6d6f02ba3";
+  };
+
+  propagatedBuildInputs = [ numpy scipy matplotlib pyqt4 cython ];
+
+  buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas nose ];
+
+  meta = with stdenv.lib; {
+    description = "QuTiP - Quantum Toolbox in Python";
+    longDescription = ''
+      QuTiP is open-source software for simulating the dynamics of
+      open quantum systems. The QuTiP library depends on the
+      excellent Numpy and Scipy numerical packages. In addition,
+      graphical output is provided by Matplotlib. QuTiP aims to
+      provide user-friendly and efficient numerical simulations of a
+      wide variety of Hamiltonians, including those with arbitrary
+      time-dependence, commonly found in a wide range of physics
+      applications such as quantum optics, trapped ions,
+      superconducting circuits, and quantum nanomechanical
+      resonators.
+    '';
+    homepage = http://qutip.org/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rabbitpy/default.nix b/pkgs/development/python-modules/rabbitpy/default.nix
new file mode 100644
index 000000000000..b9ec712759bd
--- /dev/null
+++ b/pkgs/development/python-modules/rabbitpy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, mock
+, nose
+, pamqp
+}:
+
+buildPythonPackage rec {
+  version = "0.26.2";
+  pname = "rabbitpy";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pgijv7mgxc4sm7p9s716dhl600l8isisxzyg4hz7ng1sk09p1w3";
+  };
+
+  buildInputs = [ mock nose ];
+  propagatedBuildInputs = [ pamqp ];
+
+  meta = with stdenv.lib; {
+    description = "A pure python, thread-safe, minimalistic and pythonic RabbitMQ client library";
+    homepage = https://pypi.python.org/pypi/rabbitpy;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rbtools/default.nix b/pkgs/development/python-modules/rbtools/default.nix
new file mode 100644
index 000000000000..127188ac3fbd
--- /dev/null
+++ b/pkgs/development/python-modules/rbtools/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, nose
+, six
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  name = "rbtools";
+  version = "0.7.2";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://downloads.reviewboard.org/releases/RBTools/0.7/RBTools-0.7.2.tar.gz";
+    sha256 = "1ng8l8cx81cz23ls7fq9wz4ijs0zbbaqh4kj0mj6plzcqcf8na4i";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ six ];
+
+  checkPhase = "nosetests";
+
+  meta = with stdenv.lib; {
+    homepage = https://www.reviewboard.org/docs/rbtools/dev/;
+    description = "RBTools is a set of command line tools for working with Review Board and RBCommons";
+    license = licenses.mit;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/readme/default.nix b/pkgs/development/python-modules/readme/default.nix
new file mode 100644
index 000000000000..4bc7e1cc233a
--- /dev/null
+++ b/pkgs/development/python-modules/readme/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, six
+, docutils
+, pygments
+, bleach
+, html5lib
+}:
+
+buildPythonPackage rec {
+  pname = "readme";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08j2w67nilczn1i5r7h22vag9673i6vnfhyq2rv27r1bdmi5a30m";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ six docutils pygments bleach html5lib ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  # Tests fail, possibly broken.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Readme is a library for rendering readme descriptions for Warehouse";
+    homepage = "https://github.com/pypa/readme";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/recaptcha_client/default.nix b/pkgs/development/python-modules/recaptcha_client/default.nix
new file mode 100644
index 000000000000..09090540a5b0
--- /dev/null
+++ b/pkgs/development/python-modules/recaptcha_client/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+}:
+
+buildPythonPackage rec {
+  pname = "recaptcha-client";
+  version = "1.0.6";
+  disabled = pythonAtLeast "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "28c6853c1d13d365b7dc71a6b05e5ffb56471f70a850de318af50d3d7c0dea2f";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A CAPTCHA for Python using the reCAPTCHA service";
+    homepage = http://recaptcha.net/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rencode/default.nix b/pkgs/development/python-modules/rencode/default.nix
new file mode 100644
index 000000000000..ac041d664ae4
--- /dev/null
+++ b/pkgs/development/python-modules/rencode/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, isPy33
+, fetchgit
+, cython
+}:
+
+buildPythonPackage rec {
+  pname = "rencode";
+  version = "git20150810";
+  disabled = isPy33;
+
+  src = fetchgit {
+    url = https://github.com/aresch/rencode;
+    rev = "b45e04abdca0dea36e383a8199783269f186c99e";
+    sha256 = "b4bd82852d4220e8a9493d3cfaecbc57b1325708a2d48c0f8acf262edb10dc40";
+  };
+
+  buildInputs = [ cython ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/aresch/rencode;
+    description = "Fast (basic) object serialization similar to bencode";
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/repeated_test/default.nix b/pkgs/development/python-modules/repeated_test/default.nix
new file mode 100644
index 000000000000..5722a858fae3
--- /dev/null
+++ b/pkgs/development/python-modules/repeated_test/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "repeated_test";
+  version = "0.1a3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "062syp7kl2g0x6qx3z8zb5sdycpi7qcpxp9iml2v8dqzqnij9bpg";
+  };
+
+  buildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    description = "A quick unittest-compatible framework for repeating a test function over many fixtures";
+    homepage = "https://github.com/epsy/repeated_test";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/repocheck/default.nix b/pkgs/development/python-modules/repocheck/default.nix
new file mode 100644
index 000000000000..17dea17105ee
--- /dev/null
+++ b/pkgs/development/python-modules/repocheck/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  name = "repocheck";
+  version = "2015-08-05";
+
+  src = fetchFromGitHub {
+    sha256 = "1jc4v5zy7z7xlfmbfzvyzkyz893f5x2k6kvb3ni3rn2df7jqhc81";
+    rev = "ee48d0e88d3f5814d24a8d1f22d5d83732824688";
+    repo = "repocheck";
+    owner = "kynikos";
+  };
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Check the status of code repositories under a root directory";
+    license = licenses.gpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/repoze_who/default.nix b/pkgs/development/python-modules/repoze_who/default.nix
new file mode 100644
index 000000000000..227fbdeca650
--- /dev/null
+++ b/pkgs/development/python-modules/repoze_who/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "repoze.who";
+  version = "2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12wsviar45nwn35w2y4i8b929dq2219vmwz8013wx7bpgkn2j9ij";
+  };
+
+  propagatedBuildInputs = [ zope_interface webob ];
+
+  meta = with stdenv.lib; {
+    description = "WSGI Authentication Middleware / API";
+    homepage = "http://www.repoze.org";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/resampy/default.nix b/pkgs/development/python-modules/resampy/default.nix
new file mode 100644
index 000000000000..8e69b423c9b6
--- /dev/null
+++ b/pkgs/development/python-modules/resampy/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, numpy
+, scipy
+, cython
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "resampy";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cf4f149d8699af70a1b4b0769fa16fab21835d936ea7ff25e98446aa49e743d4";
+  };
+
+  checkInputs = [ pytest pytestcov ];
+  propagatedBuildInputs = [ numpy scipy cython six ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bmcfee/resampy;
+    description = "Efficient signal resampling";
+    license = licenses.isc;
+  };
+
+}
diff --git a/pkgs/development/python-modules/retry_decorator/default.nix b/pkgs/development/python-modules/retry_decorator/default.nix
new file mode 100644
index 000000000000..15ab826b0a64
--- /dev/null
+++ b/pkgs/development/python-modules/retry_decorator/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "retry_decorator";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "086zahyb6yn7ggpc58909c5r5h3jz321i1694l1c28bbpaxnlk88";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/pnpnpn/retry-decorator;
+    description = "Retry Decorator for python functions";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/retrying/default.nix b/pkgs/development/python-modules/retrying/default.nix
new file mode 100644
index 000000000000..9074634e9b6a
--- /dev/null
+++ b/pkgs/development/python-modules/retrying/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "retrying";
+  version = "1.3.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fwp86xv0rvkncjdvy2mwcvbglw4w9k0fva25i7zx8kd19b3kh08";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  # doesn't ship tests in tarball
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/rholder/retrying;
+    description = "General-purpose retrying library";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
new file mode 100644
index 000000000000..eeaf74fb8f91
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, robotframework
+, lxml
+, requests
+}:
+
+buildPythonPackage rec {
+  version = "0.4.6";
+  pname = "robotframework-requests";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0416rxg7g0pfg77akljnkass0xz0id26v4saag2q2h1fgwrm7n4q";
+  };
+
+  buildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ robotframework lxml requests ];
+
+  meta = with stdenv.lib; {
+    description = "Robot Framework keyword library wrapper around the HTTP client library requests";
+    homepage = https://github.com/bulkan/robotframework-requests;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-selenium2library/default.nix b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
new file mode 100644
index 000000000000..15fd977936bc
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, robotframework
+, selenium
+, docutils
+, decorator
+}:
+
+buildPythonPackage rec {
+  version = "1.6.0";
+  pname = "robotframework-selenium2library";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1asdwrpb4s7q08bx641yrh3yicgba14n3hxmsqs58mqf86ignwly";
+  };
+
+  # error: invalid command 'test'
+  #doCheck = false;
+
+  propagatedBuildInputs = [ robotframework selenium docutils decorator ];
+
+  meta = with stdenv.lib; {
+    description = "Web testing library for Robot Framework";
+    homepage = http://robotframework.org/;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix
new file mode 100644
index 000000000000..98bed064b1fc
--- /dev/null
+++ b/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, robotframework
+, moretools
+, pathpy
+, six
+, setuptools
+}:
+
+buildPythonPackage rec {
+  version = "0.1a115";
+  pname = "robotframework-tools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04gkn1zpf3rsvbqdxrrjqqi8sa0md9gqwh6n5w2m03fdwjg4lc7q";
+  };
+
+  propagatedBuildInputs = [ robotframework moretools pathpy six setuptools ];
+
+  meta = with stdenv.lib; {
+    description = "Python Tools for Robot Framework and Test Libraries";
+    homepage = https://bitbucket.org/userzimmermann/robotframework-tools;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/routes/default.nix b/pkgs/development/python-modules/routes/default.nix
new file mode 100644
index 000000000000..1e2e67c6206d
--- /dev/null
+++ b/pkgs/development/python-modules/routes/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, repoze_lru
+, six
+, webob
+, coverage
+, webtest
+}:
+
+buildPythonPackage rec {
+  pname = "Routes";
+  version = "2.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
+  };
+
+  propagatedBuildInputs = [ repoze_lru six webob ];
+  checkInputs = [ coverage webtest ];
+
+  meta = with stdenv.lib; {
+    description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
+    homepage = http://routes.groovie.org/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rpdb/default.nix b/pkgs/development/python-modules/rpdb/default.nix
new file mode 100644
index 000000000000..182709b525af
--- /dev/null
+++ b/pkgs/development/python-modules/rpdb/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "rpdb";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rql1hq3lziwcql0h3dy05w074cn866p397ng9bv6qbz85ifw1bk";
+  };
+
+  meta = with stdenv.lib; {
+    description = "pdb wrapper with remote access via tcp socket";
+    homepage = https://github.com/tamentis/rpdb;
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
new file mode 100644
index 000000000000..42176b134eca
--- /dev/null
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, plumbum
+}:
+
+buildPythonPackage rec {
+  pname = "rpyc";
+  version = "3.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "43fa845314f0bf442f5f5fab15bb1d1b5fe2011a8fc603f92d8022575cef8b4b";
+  };
+
+  propagatedBuildInputs = [ nose plumbum ];
+
+  meta = with stdenv.lib; {
+    description = "Remote Python Call (RPyC), a transparent and symmetric RPC library";
+    homepage = http://rpyc.readthedocs.org;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
new file mode 100644
index 000000000000..82eedf70cb09
--- /dev/null
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, pyasn1
+}:
+
+buildPythonPackage rec {
+  pname = "rsa";
+  version = "3.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5";
+  };
+
+  nativeBuildInputs = [ unittest2 ];
+  propagatedBuildInputs = [ pyasn1 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://stuvel.eu/rsa;
+    license = licenses.asl20;
+    description = "A pure-Python RSA implementation";
+  };
+
+}
diff --git a/pkgs/development/python-modules/ruamel_base/default.nix b/pkgs/development/python-modules/ruamel_base/default.nix
new file mode 100644
index 000000000000..ba6a79fdd634
--- /dev/null
+++ b/pkgs/development/python-modules/ruamel_base/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "ruamel.base";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wswxrn4givsm917mfl39rafgadimf1sldpbjdjws00g1wx36hf0";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Common routines for ruamel packages";
+    homepage = https://bitbucket.org/ruamel/base;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/ruamel_ordereddict/default.nix b/pkgs/development/python-modules/ruamel_ordereddict/default.nix
new file mode 100644
index 000000000000..fa7bd815b686
--- /dev/null
+++ b/pkgs/development/python-modules/ruamel_ordereddict/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "ruamel.ordereddict";
+  version = "0.4.9";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xmkl8v9l9inm2pyxgc1fm5005yxm7fkd5gv74q7lj1iy5qc8n3h";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A version of dict that keeps keys in insertion resp. sorted order";
+    homepage = https://bitbucket.org/ruamel/ordereddict;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/runsnakerun/default.nix b/pkgs/development/python-modules/runsnakerun/default.nix
new file mode 100644
index 000000000000..eba8871fd022
--- /dev/null
+++ b/pkgs/development/python-modules/runsnakerun/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, squaremap
+, wxPython
+}:
+
+buildPythonPackage rec {
+  pname = "runsnakerun";
+  version = "2.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "61d03a13f1dcb3c1829f5a146da1fe0cc0e27947558a51e848b6d469902815ef";
+  };
+
+  propagatedBuildInputs = [ squaremap wxPython ];
+
+  meta = with stdenv.lib; {
+    description = "GUI Viewer for Python profiling runs";
+    homepage = http://www.vrplumber.com/programming/runsnakerun/;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sandboxlib/default.nix b/pkgs/development/python-modules/sandboxlib/default.nix
new file mode 100644
index 000000000000..1a3511dab977
--- /dev/null
+++ b/pkgs/development/python-modules/sandboxlib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pbr
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "sandboxlib";
+  version = "0.31";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0csj8hbpylqdkxcpqkcfs73dfvdqkyj23axi8m9drqdi4dhxb41h";
+  };
+
+  buildInputs = [ pbr ];
+
+  meta = with stdenv.lib; {
+    description = "Sandboxing Library for Python";
+    homepage = https://pypi.python.org/pypi/sandboxlib/0.3.1;
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/scales/default.nix b/pkgs/development/python-modules/scales/default.nix
new file mode 100644
index 000000000000..4fb169b15584
--- /dev/null
+++ b/pkgs/development/python-modules/scales/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "scales";
+  version = "1.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8b6930f7d4bf115192290b44c757af5e254e3fcfcb75ff9a51f5c96a404e2753";
+  };
+
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ six ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Stats for Python processes";
+    homepage = https://www.github.com/Cue/scales;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 5fdffedc6f27..597a8e0783a2 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -29,12 +29,7 @@ buildPythonPackage rec {
   '';
 
   preBuild = ''
-    echo "Creating site.cfg file..."
-    cat << EOF > site.cfg
-    [openblas]
-    include_dirs = ${numpy.blas}/include
-    library_dirs = ${numpy.blas}/lib
-    EOF
+    ln -s ${numpy.cfg} site.cfg
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/scripttest/default.nix b/pkgs/development/python-modules/scripttest/default.nix
new file mode 100644
index 000000000000..2ae7a4c8e361
--- /dev/null
+++ b/pkgs/development/python-modules/scripttest/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.3";
+  pname = "scripttest";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "951cfc25219b0cd003493a565f2e621fd791beaae9f9a3bdd7024d8626419c38";
+  };
+
+  buildInputs = [ pytest ];
+
+  # Tests are not included. See https://github.com/pypa/scripttest/issues/11
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A library for testing interactive command-line applications";
+    homepage = https://pypi.python.org/pypi/ScriptTest/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/semantic/default.nix b/pkgs/development/python-modules/semantic/default.nix
new file mode 100644
index 000000000000..b5855fbb143d
--- /dev/null
+++ b/pkgs/development/python-modules/semantic/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, quantities
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "semantic";
+  version = "1.0.3";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bbc47dad03dddb1ba5895612fdfa1e43cfb3c497534976cebacd4f3684b505b4";
+  };
+
+  propagatedBuildInputs = [ quantities numpy ];
+
+  # strange setuptools error (can not import semantic.test)
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Common Natural Language Processing Tasks for Python";
+    homepage = https://github.com/crm416/semantic;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/setproctitle/default.nix b/pkgs/development/python-modules/setproctitle/default.nix
new file mode 100644
index 000000000000..3aea75e3de82
--- /dev/null
+++ b/pkgs/development/python-modules/setproctitle/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-setproctitle";
+  version = "1.1.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1mqadassxcm0m9r1l02m5vr4bbandn48xz8gifvxmb4wiz8i8d0w";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Allows a process to change its title (as displayed by system tools such as ps and top)";
+    homepage =  https://github.com/dvarrazzo/py-setproctitle;
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ exi ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index b61af72909ff..ac3d0e473958 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -8,13 +8,13 @@
 # Should use buildPythonPackage here somehow
 stdenv.mkDerivation rec {
   pname = "setuptools";
-  version = "40.2.0";
+  version = "40.4.3";
   name = "${python.libPrefix}-${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "47881d54ede4da9c15273bac65f9340f8929d4f0213193fa7894be384f2dcfa6";
+    sha256 = "acbc5740dd63f243f46c2b4b8e2c7fd92259c2ddb55a4115b16418a2ed371b15";
   };
 
   nativeBuildInputs = [ unzip wrapPython ];
diff --git a/pkgs/development/python-modules/setuptoolsdarcs/default.nix b/pkgs/development/python-modules/setuptoolsdarcs/default.nix
new file mode 100644
index 000000000000..d696a5be08fa
--- /dev/null
+++ b/pkgs/development/python-modules/setuptoolsdarcs/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, darcsver
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools_darcs";
+  version = "1.2.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wsh0g1fn10msqk87l5jrvzs0yj5mp6q9ld3gghz6zrhl9kqzdn1";
+  };
+
+  # In order to break the dependency on darcs -> ghc, we don't add
+  # darcs as a propagated build input.
+  propagatedBuildInputs = [ darcsver ];
+
+  # ugly hack to specify version that should otherwise come from darcs
+  patchPhase = ''
+    substituteInPlace setup.py --replace "name=PKG" "name=PKG, version='${version}'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Setuptools plugin for the Darcs version control system";
+    homepage = http://allmydata.org/trac/setuptools_darcs;
+    license = licenses.bsd0;
+  };
+}
diff --git a/pkgs/development/python-modules/setuptoolstrial/default.nix b/pkgs/development/python-modules/setuptoolstrial/default.nix
new file mode 100644
index 000000000000..b393d0eb2003
--- /dev/null
+++ b/pkgs/development/python-modules/setuptoolstrial/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, virtualenv
+, pytestrunner
+, pytest-virtualenv
+, twisted
+, pathlib2
+}:
+
+buildPythonPackage rec {
+  pname = "setuptools_trial";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14220f8f761c48ba1e2526f087195077cf54fad7098b382ce220422f0ff59b12";
+  };
+
+  buildInputs = [ pytest virtualenv pytestrunner pytest-virtualenv ];
+  propagatedBuildInputs = [ twisted pathlib2 ];
+
+  postPatch = ''
+    sed -i '12,$d' tests/test_main.py
+  '';
+
+  # Couldn't get tests working
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit.";
+    homepage = "https://github.com/rutsky/setuptools-trial";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ryansydnor nand0p ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sexpdata/default.nix b/pkgs/development/python-modules/sexpdata/default.nix
new file mode 100644
index 000000000000..97bb5b35b197
--- /dev/null
+++ b/pkgs/development/python-modules/sexpdata/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sexpdata";
+  version = "0.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eb696bc66b35def5fb356de09481447dff4e9a3ed926823134e1d0f35eade428";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "S-expression parser for Python";
+    homepage = "https://github.com/tkf/sexpdata";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/shortuuid/default.nix b/pkgs/development/python-modules/shortuuid/default.nix
new file mode 100644
index 000000000000..43cf9806ba67
--- /dev/null
+++ b/pkgs/development/python-modules/shortuuid/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pep8
+}:
+
+buildPythonPackage rec {
+  pname = "shortuuid";
+  version = "0.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4606dbb19124d98109c00e2cafae2df8117aec02115623e18fb2abe3f766d293";
+  };
+
+  buildInputs = [pep8];
+
+  meta = with stdenv.lib; {
+    description = "A generator library for concise, unambiguous and URL-safe UUIDs";
+    homepage = https://github.com/stochastic-technologies/shortuuid/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ zagy ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/shouldbe/default.nix b/pkgs/development/python-modules/shouldbe/default.nix
new file mode 100644
index 000000000000..df868bb4d5e5
--- /dev/null
+++ b/pkgs/development/python-modules/shouldbe/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, forbiddenfruit
+}:
+
+buildPythonPackage rec {
+  version = "0.1.0";
+  pname = "shouldbe";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07pchxpv1xvjbck0xy44k3a1jrvklg0wbyccn14w0i7d135d4174";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ forbiddenfruit ];
+
+  doCheck = false;  # Segmentation fault on py 3.5
+
+  meta = with stdenv.lib; {
+    description = "Python Assertion Helpers inspired by Shouldly";
+    homepage =  https://pypi.python.org/pypi/shouldbe/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/signedjson/default.nix b/pkgs/development/python-modules/signedjson/default.nix
new file mode 100644
index 000000000000..33a615fefd46
--- /dev/null
+++ b/pkgs/development/python-modules/signedjson/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, canonicaljson
+, unpaddedbase64
+, pynacl
+}:
+
+buildPythonPackage rec {
+  pname = "signedjson";
+  version = "1.0.0";
+
+  src = fetchgit {
+    url = "https://github.com/matrix-org/python-signedjson.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0b8xxhc3npd4567kqapfp4gs7m0h057xam3an7424az262ind82n";
+  };
+
+  propagatedBuildInputs = [ canonicaljson unpaddedbase64 pynacl ];
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.org/project/signedjson/;
+    description = "Sign JSON with Ed25519 signatures";
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/sigtools/default.nix b/pkgs/development/python-modules/sigtools/default.nix
new file mode 100644
index 000000000000..88bddacbe056
--- /dev/null
+++ b/pkgs/development/python-modules/sigtools/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, repeated_test
+, sphinx
+, mock
+, coverage
+, unittest2
+, funcsigs
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "sigtools";
+  version = "1.1a3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "190w14vzbiyvxcl9jmyyimpahar5b0bq69v9iv7chi852yi71w6w";
+  };
+
+  buildInputs = [ repeated_test sphinx mock coverage unittest2 ];
+  propagatedBuildInputs = [ funcsigs six ];
+
+  patchPhase = ''sed -i s/test_suite="'"sigtools.tests"'"/test_suite="'"unittest2.collector"'"/ setup.py'';
+
+  meta = with stdenv.lib; {
+    description = "Utilities for working with 3.3's inspect.Signature objects.";
+    homepage = "https://pypi.python.org/pypi/sigtools";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/simpleai/default.nix b/pkgs/development/python-modules/simpleai/default.nix
new file mode 100644
index 000000000000..3d4bdf3968fc
--- /dev/null
+++ b/pkgs/development/python-modules/simpleai/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, isPy3k
+}:
+
+buildPythonPackage rec {
+   version = "0.7.11";
+   pname = "simpleai";
+   disabled = isPy3k;
+
+   src = fetchPypi {
+     inherit pname version;
+     sha256 = "03frjc5jxsz9xm24jz7qa4hcp0dicgazrxkdsa2rsnir672lwkwz";
+   };
+
+   propagatedBuildInputs = [ numpy ];
+
+   #No tests in archive
+   doCheck = false;
+
+   meta = with stdenv.lib; {
+     homepage = https://github.com/simpleai-team/simpleai;
+     description = "This lib implements many of the artificial intelligence algorithms described on the book 'Artificial Intelligence, a Modern Approach'";
+     maintainers = with maintainers; [ NikolaMandic ];
+   };
+
+}
diff --git a/pkgs/development/python-modules/simplebayes/default.nix b/pkgs/development/python-modules/simplebayes/default.nix
new file mode 100644
index 000000000000..705b75593725
--- /dev/null
+++ b/pkgs/development/python-modules/simplebayes/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, mock
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "simplebayes";
+  version = "1.5.8";
+
+  # Use GitHub instead of pypi, because it contains tests.
+  src = fetchFromGitHub {
+    repo = "simplebayes";
+    owner = "hickeroar";
+    # NOTE: This is actually 1.5.8 but the tag is wrong!
+    rev = "1.5.7";
+    sha256 = "0mp7rvfdmpfxnka4czw3lv5kkh6gdxh6dm4r6hcln1zzfg9lxp4h";
+  };
+
+  checkInputs = [ nose mock ];
+
+  postPatch = stdenv.lib.optionalString isPy3k ''
+    sed -i -e 's/open *(\([^)]*\))/open(\1, encoding="utf-8")/' setup.py
+  '';
+
+  checkPhase = "nosetests tests/test.py";
+
+  meta = with stdenv.lib; {
+    description = "Memory-based naive bayesian text classifier";
+    homepage = "https://github.com/hickeroar/simplebayes";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/simpleparse/default.nix b/pkgs/development/python-modules/simpleparse/default.nix
new file mode 100644
index 000000000000..025331a49e93
--- /dev/null
+++ b/pkgs/development/python-modules/simpleparse/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "2.1.1";
+  pname = "simpleparse";
+  disabled = isPy3k || isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n8msk71lpl3kv086xr2sv68ppgz6228575xfnbszc6p1mwr64rg";
+  };
+
+  doCheck = false;  # weird error
+
+  meta = with stdenv.lib; {
+    description = "A Parser Generator for Python";
+    homepage = https://pypi.python.org/pypi/SimpleParse;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sipsimple/default.nix b/pkgs/development/python-modules/sipsimple/default.nix
new file mode 100644
index 000000000000..1df36dcf5d0a
--- /dev/null
+++ b/pkgs/development/python-modules/sipsimple/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, fetchdarcs
+, isPy3k
+, pkgs
+, cython
+, dnspython
+, dateutil
+, xcaplib
+, msrplib
+, lxml
+, python-otr
+}:
+
+buildPythonPackage rec {
+  pname = "sipsimple";
+  version = "3.1.1";
+  disabled = isPy3k;
+
+  src = fetchdarcs {
+    url = http://devel.ag-projects.com/repositories/python-sipsimple;
+    rev = "release-${version}";
+    sha256 = "0jdilm11f5aahxrzrkxrfx9sgjgkbla1r0wayc5dzd2wmjrdjyrg";
+  };
+
+  preConfigure = ''
+    chmod +x ./deps/pjsip/configure ./deps/pjsip/aconfigure
+  '';
+
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = with pkgs; [ alsaLib ffmpeg libv4l sqlite libvpx ];
+  propagatedBuildInputs = [ cython pkgs.openssl dnspython dateutil xcaplib msrplib lxml python-otr ];
+
+  meta = with stdenv.lib; {
+    description = "SIP SIMPLE implementation for Python";
+    homepage = http://sipsimpleclient.org/;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pSub ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/slob/default.nix b/pkgs/development/python-modules/slob/default.nix
new file mode 100644
index 000000000000..490113d6952a
--- /dev/null
+++ b/pkgs/development/python-modules/slob/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, PyICU
+, python
+}:
+
+buildPythonPackage rec {
+  name = "slob";
+  verison = "unstable-2016-11-03";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "itkach";
+    repo = "slob";
+    rev = "d1ed71e4778729ecdfc2fe27ed783689a220a6cd";
+    sha256 = "1r510s4r124s121wwdm9qgap6zivlqqxrhxljz8nx0kv0cdyypi5";
+  };
+
+  propagatedBuildInputs = [ PyICU ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest slob
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/itkach/slob/;
+    description = "Reference implementation of the slob (sorted list of blobs) format";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.rycee ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/slowaes/default.nix b/pkgs/development/python-modules/slowaes/default.nix
new file mode 100644
index 000000000000..f9175e507b46
--- /dev/null
+++ b/pkgs/development/python-modules/slowaes/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "slowaes";
+  version = "0.1a1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "83658ae54cc116b96f7fdb12fdd0efac3a4e8c7c7064e3fac3f4a881aa54bf09";
+  };
+
+  disabled = isPy3k;
+
+  meta = with stdenv.lib; {
+    homepage = "http://code.google.com/p/slowaes/";
+    description = "AES implemented in pure python";
+    license = with licenses; [ asl20 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/smartdc/default.nix b/pkgs/development/python-modules/smartdc/default.nix
new file mode 100644
index 000000000000..e22c99651e63
--- /dev/null
+++ b/pkgs/development/python-modules/smartdc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, http_signature
+}:
+
+buildPythonPackage rec {
+  pname = "smartdc";
+  version = "0.1.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "36206f4fddecae080c66faf756712537e650936b879abb23a8c428731d2415fe";
+  };
+
+  propagatedBuildInputs = [ requests http_signature ];
+
+  meta = with stdenv.lib; {
+    description = "Joyent SmartDataCenter CloudAPI connector using http-signature authentication via Requests";
+    homepage = https://github.com/atl/py-smartdc;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/smartypants/default.nix b/pkgs/development/python-modules/smartypants/default.nix
new file mode 100644
index 000000000000..3c4735013ab1
--- /dev/null
+++ b/pkgs/development/python-modules/smartypants/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchhg
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  version = "1.8.6";
+  pname = "smartypants";
+  disabled = isPyPy;
+
+  src = fetchhg {
+    url = "https://bitbucket.org/livibetter/smartypants.py";
+    rev = "v${version}";
+    sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Python with the SmartyPants";
+    homepage = "https://bitbucket.org/livibetter/smartypants.py";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/smugline/default.nix b/pkgs/development/python-modules/smugline/default.nix
new file mode 100644
index 000000000000..ac625cf1fa04
--- /dev/null
+++ b/pkgs/development/python-modules/smugline/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, docopt
+, requests
+, smugpy
+, python
+, pkgs
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname   = "smugline";
+  version = "20160106";
+
+  src = fetchFromGitHub {
+    owner  = "gingerlime";
+    repo   = pname;
+    rev    = "134554c574c2d282112ba60165a8c5ffe0f16fd4";
+    sha256 = "00n012ijkdrx8wsl8x3ghdcxcdp29s4kwr3yxvlyj79g5yhfvaj6";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  buildInputs = [ python pkgs.makeWrapper ];
+  propagatedBuildInputs = [ docopt requests smugpy ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec
+    cp smugline.py $out/libexec
+    makeWrapper ${python.interpreter} $out/bin/smugline \
+      --add-flags "$out/libexec/smugline.py" \
+      --prefix PYTHONPATH : "$PYTHONPATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/gingerlime/smugline;
+    description = "A simple command line tool for smugmug ";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/snappergui/default.nix b/pkgs/development/python-modules/snappergui/default.nix
new file mode 100644
index 000000000000..43e942a95880
--- /dev/null
+++ b/pkgs/development/python-modules/snappergui/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, pygobject3
+, dbus-python
+}:
+
+buildPythonPackage rec {
+  name = "Snapper-GUI";
+  version = "0.1";
+
+  src = fetchgit {
+    url = "https://github.com/ricardomv/snapper-gui";
+    rev = "11d98586b122180c75a86fccda45c4d7e3137591";
+    sha256 = "7a9f86fc17dbf130526e70c3e925eac30e2c74d6b932efbf7e7cd9fbba6dc4b1";
+  };
+
+  # no tests available
+  doCheck = false;
+
+  propagatedBuildInputs = [ pygobject3 dbus-python ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ricardomv/snapper-gui;
+    description = "Graphical frontend for snapper";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ tstrobel ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/socksipy-branch/default.nix b/pkgs/development/python-modules/socksipy-branch/default.nix
new file mode 100644
index 000000000000..37961f898f59
--- /dev/null
+++ b/pkgs/development/python-modules/socksipy-branch/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "SocksiPy-branch";
+  version = "1.01";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://code.google.com/p/socksipy-branch/;
+    description = "This Python module allows you to create TCP connections through a SOCKS proxy without any special effort";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
new file mode 100644
index 000000000000..1103e0fa3d30
--- /dev/null
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, praw
+, xmltodict
+, pytz
+, pyenchant
+, pygeoip
+, python
+, isPyPy
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "sopel";
+  version = "6.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1swvw7xw8n5anb8ah8jilk4vk1y30y62fkibfd9vm9fbk45d1q48";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ praw xmltodict pytz pyenchant pygeoip ];
+
+  disabled = isPyPy || isPy27;
+
+  checkPhase = ''
+    ${python.interpreter} test/*.py                                         #*/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple and extensible IRC bot";
+    homepage = "http://sopel.chat";
+    license = licenses.efl20;
+    maintainers = with maintainers; [ mog ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sorl_thumbnail/default.nix b/pkgs/development/python-modules/sorl_thumbnail/default.nix
new file mode 100644
index 000000000000..a580f80f281e
--- /dev/null
+++ b/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sorl-thumbnail";
+  version = "11.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "050b9kzbx7jvs3qwfxxshhis090hk128maasy8pi5wss6nx5kyw4";
+  };
+
+  # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://sorl-thumbnail.readthedocs.org/en/latest/;
+    description = "Thumbnails for Django";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/speaklater/default.nix b/pkgs/development/python-modules/speaklater/default.nix
new file mode 100644
index 000000000000..5de86d9e14c2
--- /dev/null
+++ b/pkgs/development/python-modules/speaklater/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "speaklater";
+  version = "1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ab5dbfzzgz6cnz4xlwx79gz83id4bhiw67k1cgqrlzfs0va7zjr";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Implements a lazy string for python useful for use with gettext";
+    homepage = https://github.com/mitsuhiko/speaklater;
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ matejc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinx_pypi_upload/default.nix b/pkgs/development/python-modules/sphinx_pypi_upload/default.nix
new file mode 100644
index 000000000000..52590817c71b
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx_pypi_upload/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "Sphinx-PyPI-upload";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5f919a47ce7a7e6028dba809de81ae1297ac192347cf6fc54efca919d4865159";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Setuptools command for uploading Sphinx documentation to PyPI";
+    homepage = https://bitbucket.org/jezdez/sphinx-pypi-upload/;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinx_rtd_theme/default.nix b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
new file mode 100644
index 000000000000..69845d10c35e
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx_rtd_theme/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx_rtd_theme";
+  version = "0.2.5b2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0grf16fi4g0p3dfh11b1624ic34iqkjhf5i1g6hvsh4nlm0ll00q";
+  };
+
+  meta = with stdenv.lib; {
+    description = "ReadTheDocs.org theme for Sphinx";
+    homepage = https://github.com/snide/sphinx_rtd_theme/;
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
new file mode 100644
index 000000000000..1eeb40ddbc22
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, mock
+, sphinx-testing
+, sphinx
+, blockdiag
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-blockdiag";
+  version = "1.5.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w7q2hhpzk159wd35hlbwkh80hnglqa475blcd9vjwpkv1kgkpvw";
+  };
+
+  buildInputs = [ mock sphinx-testing ];
+  propagatedBuildInputs = [ sphinx blockdiag ];
+
+  # Seems to look for files in the wrong dir
+  doCheck = false;
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s tests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Sphinx blockdiag extension";
+    homepage = "https://github.com/blockdiag/sphinxcontrib-blockdiag";
+    maintainers = with maintainers; [ nand0p ];
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
new file mode 100644
index 000000000000..a800694ad942
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pyyaml
+, jsonschema
+, sphinxcontrib_httpdomain
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-openapi";
+  version = "0.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fyniq37nnmhrk4j7mzvg6vfcpb624hb9x70g6mccyw4xrnhadv6";
+  };
+
+  propagatedBuildInputs = [setuptools_scm pyyaml jsonschema sphinxcontrib_httpdomain];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ikalnytskyi/sphinxcontrib-openapi;
+    description = "OpenAPI (fka Swagger) spec renderer for Sphinx";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
new file mode 100644
index 000000000000..4d9a4b2ba94c
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, pyenchant
+, pbr
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-spelling";
+  version = "2.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f0fymrk4kvhqs0vj9gay4lhacxkfrlrpj4gvg0p4wjdczplxd3z";
+  };
+
+  propagatedBuildInputs = [ sphinx pyenchant pbr ];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Sphinx spelling extension";
+    homepage = https://bitbucket.org/dhellmann/sphinxcontrib-spelling;
+    maintainers = with maintainers; [ nand0p ];
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix b/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
new file mode 100644
index 000000000000..8416e9b3d8d9
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib_httpdomain/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-httpdomain";
+  version = "1.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0srg8lwf4m1hyhz942fcdfxh689xphndngiidb575qmfbi89gc7a";
+  };
+
+  propagatedBuildInputs = [ sphinx ];
+
+  # Check is disabled due to this issue:
+  # https://bitbucket.org/pypa/setuptools/issue/137/typeerror-unorderable-types-str-nonetype
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Provides a Sphinx domain for describing RESTful HTTP APIs";
+    homepage = https://bitbucket.org/birkenfeld/sphinx-contrib;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix b/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix
new file mode 100644
index 000000000000..2dfaf7dbc143
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib_newsfeed/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-newsfeed";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p";
+  };
+
+  propagatedBuildInputs = [ sphinx ];
+
+  meta = with stdenv.lib; {
+    description = "Extension for adding a simple Blog, News or Announcements section to a Sphinx website";
+    homepage = https://bitbucket.org/prometheus/sphinxcontrib-newsfeed;
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix b/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
new file mode 100644
index 000000000000..3b9119d6651d
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib_plantuml/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, sphinx
+, plantuml
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-plantuml";
+  version = "0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "011yprqf41dcm1824zgk2w8vi9115286pmli6apwhlrsxc6b6cwv";
+  };
+
+  # No tests included.
+  doCheck = false;
+
+  propagatedBuildInputs = [ sphinx plantuml ];
+
+  meta = with stdenv.lib; {
+    description = "Provides a Sphinx domain for embedding UML diagram with PlantUML";
+    homepage = https://bitbucket.org/birkenfeld/sphinx-contrib;
+    license = with licenses; [ bsd2 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix b/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
new file mode 100644
index 000000000000..53eb223b25a7
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-imageattach/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, Wand
+, webob
+, sqlalchemy
+, isPyPy
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "SQLAlchemy-ImageAttach";
+  version = "1.0.0";
+
+  src = pkgs.fetchFromGitHub {
+    repo = "sqlalchemy-imageattach";
+    owner = "dahlia";
+    rev = "${version}";
+    sha256 = "0ba97pn5dh00qvxyjbr0mr3pilxqw5kb3a6jd4wwbsfcv6nngqig";
+  };
+
+  checkInputs = [ pytest Wand.imagemagick webob ];
+  propagatedBuildInputs = [ sqlalchemy Wand ];
+
+  checkPhase = ''
+    cd tests
+    export MAGICK_HOME="${pkgs.imagemagick.dev}"
+    export PYTHONPATH=$PYTHONPATH:../
+    py.test
+    cd ..
+  '';
+
+  doCheck = !isPyPy;  # failures due to sqla version mismatch
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/dahlia/sqlalchemy-imageattach;
+    description = "SQLAlchemy extension for attaching images to entity objects";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlite3dbm/default.nix b/pkgs/development/python-modules/sqlite3dbm/default.nix
new file mode 100644
index 000000000000..bc49c0e426ba
--- /dev/null
+++ b/pkgs/development/python-modules/sqlite3dbm/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "sqlite3dbm";
+  version = "0.1.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4721607e0b817b89efdba7e79cab881a03164b94777f4cf796ad5dd59a7612c5";
+  };
+
+  meta = with stdenv.lib; {
+    description = "sqlite-backed dictionary";
+    homepage = https://github.com/Yelp/sqlite3dbm;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix
new file mode 100644
index 000000000000..7a3551e88a0c
--- /dev/null
+++ b/pkgs/development/python-modules/sqlobject/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, FormEncode
+, PasteDeploy
+, paste
+, pydispatcher
+}:
+
+buildPythonPackage rec {
+  pname = "SQLObject";
+  version = "3.3.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0p2dxrxh7xrv5yys09v5z95d0z40w22aq3xc01ghdidd7hr79xy9";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [ FormEncode PasteDeploy paste pydispatcher ];
+
+  meta = with stdenv.lib; {
+    description = "Object Relational Manager for providing an object interface to your database";
+    homepage = "http://www.sqlobject.org/";
+    license = licenses.lgpl21;
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlparse/default.nix b/pkgs/development/python-modules/sqlparse/default.nix
new file mode 100644
index 000000000000..934bf79de5d3
--- /dev/null
+++ b/pkgs/development/python-modules/sqlparse/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "sqlparse";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08dszglfhf1c4rwqinkbp4x55v0b90rgm1fxc1l4dy965imjjinl";
+  };
+
+  buildInputs = [ pytest ];
+  checkPhase = ''
+    py.test
+  '';
+
+  # Package supports 3.x, but tests are clearly 2.x only.
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Non-validating SQL parser for Python";
+    longDescription = ''
+      Provides support for parsing, splitting and formatting SQL statements.
+    '';
+    homepage = https://github.com/andialbrecht/sqlparse;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/squaremap/default.nix b/pkgs/development/python-modules/squaremap/default.nix
new file mode 100644
index 000000000000..3a0e95ab77e3
--- /dev/null
+++ b/pkgs/development/python-modules/squaremap/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "squaremap";
+  version = "1.0.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "feab6cb3b222993df68440e34825d8a16de2c74fdb290ae3974c86b1d5f3eef8";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Hierarchic visualization control for wxPython";
+    homepage = https://launchpad.net/squaremap;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/stompclient/default.nix b/pkgs/development/python-modules/stompclient/default.nix
new file mode 100644
index 000000000000..1efcd6a65005
--- /dev/null
+++ b/pkgs/development/python-modules/stompclient/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, mock
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "stompclient";
+  version = "0.3.2";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "95a4e98dd0bba348714439ea11a25ee8a74acb8953f95a683924b5bf2a527e4e";
+  };
+
+  buildInputs = [ mock nose ];
+
+  # XXX: Ran 0 tests in 0.217s
+
+  meta = with stdenv.lib; {
+    description = "Lightweight and extensible STOMP messaging client";
+    homepage = https://bitbucket.org/hozn/stompclient;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/subdownloader/default.nix b/pkgs/development/python-modules/subdownloader/default.nix
new file mode 100644
index 000000000000..24b082123b82
--- /dev/null
+++ b/pkgs/development/python-modules/subdownloader/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, mmpython
+, pyqt4
+}:
+
+buildPythonPackage rec {
+  version = "2.0.18";
+  pname = "subdownloader";
+
+  src = fetchurl {
+    url = "https://launchpad.net/subdownloader/trunk/2.0.18/+download/subdownloader_2.0.18.orig.tar.gz";
+    sha256 = "0manlfdpb585niw23ibb8n21mindd1bazp0pnxvmdjrp2mnw97ig";
+  };
+
+  propagatedBuildInputs = [ mmpython pyqt4 ];
+
+  setup = ''
+    import os
+    import sys
+
+    try:
+        if os.environ.get("NO_SETUPTOOLS"):
+            raise ImportError()
+        from setuptools import setup, Extension
+        SETUPTOOLS = True
+    except ImportError:
+        SETUPTOOLS = False
+        # Use distutils.core as a fallback.
+        # We won t be able to build the Wheel file on Windows.
+        from distutils.core import setup, Extension
+
+    with open("README") as fp:
+        long_description = fp.read()
+
+    requirements = [ ]
+
+    install_options = {
+        "name": "subdownloader",
+        "version": "2.0.18",
+        "description": "Tool for automatic download/upload subtitles for videofiles using fast hashing",
+        "long_description": long_description,
+        "url": "http://www.subdownloader.net",
+
+        "scripts": ["run.py"],
+        "packages": ["cli", "FileManagement", "gui", "languages", "modules"],
+
+    }
+    if SETUPTOOLS:
+        install_options["install_requires"] = requirements
+
+    setup(**install_options)
+  '';
+
+  postUnpack = ''
+    echo '${setup}' > $sourceRoot/setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tool for automatic download/upload subtitles for videofiles using fast hashing";
+    homepage = http://www.subdownloader.net;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/subunit/default.nix b/pkgs/development/python-modules/subunit/default.nix
new file mode 100644
index 000000000000..ac21ea41555c
--- /dev/null
+++ b/pkgs/development/python-modules/subunit/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage
+, pkgs
+, testtools
+, testscenarios
+}:
+
+buildPythonPackage rec {
+  name = pkgs.subunit.name;
+  src = pkgs.subunit.src;
+
+  propagatedBuildInputs = [ testtools testscenarios ];
+  nativeBuildInputs = [ pkgs.pkgconfig ];
+  buildInputs = [ pkgs.check pkgs.cppunit ];
+
+  patchPhase = ''
+    sed -i 's/version=VERSION/version="${pkgs.subunit.version}"/' setup.py
+  '';
+
+  meta = pkgs.subunit.meta;
+
+}
diff --git a/pkgs/development/python-modules/suds-jurko/default.nix b/pkgs/development/python-modules/suds-jurko/default.nix
new file mode 100644
index 000000000000..5c04c5bd5d35
--- /dev/null
+++ b/pkgs/development/python-modules/suds-jurko/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "suds-jurko";
+  version = "0.6";
+  disabled = isPyPy;  # lots of failures
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "1s4radwf38kdh3jrn5acbidqlr66sx786fkwi0rgq61hn4n2bdqw";
+  };
+
+  buildInputs = [ pytest ];
+
+  preBuild = ''
+    # fails
+    substituteInPlace tests/test_transport_http.py \
+      --replace "test_sending_unicode_data" "noop"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Lightweight SOAP client (Jurko's fork)";
+    homepage = https://bitbucket.org/jurko/suds;
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/suds/default.nix b/pkgs/development/python-modules/suds/default.nix
new file mode 100644
index 000000000000..c4a8e480ed40
--- /dev/null
+++ b/pkgs/development/python-modules/suds/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "suds";
+  version = "0.4";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w4s9051iv90c0gs73k80c3d51y2wbx1xgfdgg2hk7mv4gjlllnm";
+  };
+
+  patches = [ ./suds-0.4-CVE-2013-2217.patch ];
+
+  meta = with stdenv.lib; {
+    # Broken for security issues:
+    # - https://github.com/NixOS/nixpkgs/issues/19678
+    # - https://lwn.net/Vulnerabilities/559200/
+    broken = true;
+    description = "Lightweight SOAP client";
+    homepage = https://fedorahosted.org/suds;
+    license = licenses.lgpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/suds-0.4-CVE-2013-2217.patch b/pkgs/development/python-modules/suds/suds-0.4-CVE-2013-2217.patch
index 235fc1f928c0..235fc1f928c0 100644
--- a/pkgs/development/python-modules/suds-0.4-CVE-2013-2217.patch
+++ b/pkgs/development/python-modules/suds/suds-0.4-CVE-2013-2217.patch
diff --git a/pkgs/development/python-modules/sure/default.nix b/pkgs/development/python-modules/sure/default.nix
new file mode 100644
index 000000000000..31ec9c12b002
--- /dev/null
+++ b/pkgs/development/python-modules/sure/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, six
+, mock
+, pkgs
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "sure";
+  version = "1.2.24";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lyjq0rvkbv585dppjdq90lbkm6gyvag3wgrggjzyh7cpyh5c12w";
+  };
+
+  LC_ALL="en_US.UTF-8";
+
+  buildInputs = [ nose pkgs.glibcLocales ];
+  propagatedBuildInputs = [ six mock ];
+
+  meta = with stdenv.lib; {
+    description = "Utility belt for automated testing";
+    homepage = https://falcao.it/sure/;
+    license = licenses.gpl3Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/svg2tikz/default.nix b/pkgs/development/python-modules/svg2tikz/default.nix
new file mode 100644
index 000000000000..c3308bf229c0
--- /dev/null
+++ b/pkgs/development/python-modules/svg2tikz/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, lxml
+, isPy27
+}:
+
+buildPythonPackage {
+  name = "svg2tikz";
+  version = "1.0.0";
+  disabled = ! isPy27;
+
+  propagatedBuildInputs = [ lxml ];
+
+  src = fetchgit {
+    url = "https://github.com/kjellmf/svg2tikz";
+    sha256 = "429428ec435e53672b85cdfbb89bb8af0ff9f8238f5d05970729e5177d252d5f";
+    rev = "ad36f2c3818da13c4136d70a0fd8153acf8daef4";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kjellmf/svg2tikz;
+    description = "An SVG to TikZ converter";
+    license = licenses.gpl2Plus;
+    maintainers =  with maintainers; [ gal_bolle ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/svgwrite/default.nix b/pkgs/development/python-modules/svgwrite/default.nix
new file mode 100644
index 000000000000..79e03acd3599
--- /dev/null
+++ b/pkgs/development/python-modules/svgwrite/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, pyparsing
+}:
+
+buildPythonPackage rec {
+  pname = "svgwrite";
+  version = "1.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f018813072aa4d7e95e58f133acb3f68fa7de0a0d89ec9402cc38406a0ec5b8";
+  };
+
+  buildInputs = [ setuptools ];
+  propagatedBuildInputs = [ pyparsing ];
+
+  meta = with stdenv.lib; {
+    description = "A Python library to create SVG drawings";
+    homepage = https://bitbucket.org/mozman/svgwrite;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tarman/default.nix b/pkgs/development/python-modules/tarman/default.nix
new file mode 100644
index 000000000000..305daecc8de5
--- /dev/null
+++ b/pkgs/development/python-modules/tarman/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, unittest2
+, nose
+, mock
+, libarchive
+}:
+
+buildPythonPackage rec {
+  version = "0.1.3";
+  pname = "tarman";
+
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ri6gj883k042xaxa2d5ymmhbw2bfcxdzhh4bz7700ibxwxxj62h";
+  };
+
+  buildInputs = [ unittest2 nose mock ];
+  propagatedBuildInputs = [ libarchive ];
+
+  # tests are still failing
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/matejc/tarman;
+    description = "Archive manager with curses interface";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/taskw/default.nix b/pkgs/development/python-modules/taskw/default.nix
new file mode 100644
index 000000000000..b2cc48b3079c
--- /dev/null
+++ b/pkgs/development/python-modules/taskw/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, tox
+, six
+, dateutil
+, pytz
+, pkgs
+}:
+
+buildPythonPackage rec {
+  version = "1.0.3";
+  pname = "taskw";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fa7bv5996ppfbryv02lpnlhk5dra63lhlwrb1i4ifqbziqfqh5n";
+  };
+
+  patches = [ ./use-template-for-taskwarrior-install-path.patch ];
+  postPatch = ''
+    substituteInPlace taskw/warrior.py \
+      --replace '@@taskwarrior@@' '${pkgs.taskwarrior}'
+  '';
+
+  # https://github.com/ralphbean/taskw/issues/98
+  doCheck = false;
+
+  buildInputs = [ nose pkgs.taskwarrior tox ];
+  propagatedBuildInputs = [ six dateutil pytz ];
+
+  meta = with stdenv.lib; {
+    homepage =  https://github.com/ralphbean/taskw;
+    description = "Python bindings for your taskwarrior database";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ pierron ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/telegram/default.nix b/pkgs/development/python-modules/telegram/default.nix
new file mode 100644
index 000000000000..df45aaaee3bc
--- /dev/null
+++ b/pkgs/development/python-modules/telegram/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "telegram";
+  version = "0.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1495l2ml8mg120wfvqhikqkfczhwwaby40vdmsz8v2l69jps01fl";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/liluo/telegram;
+    description = "Telegram APIs";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/termcolor/default.nix b/pkgs/development/python-modules/termcolor/default.nix
new file mode 100644
index 000000000000..2931f0e51999
--- /dev/null
+++ b/pkgs/development/python-modules/termcolor/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "termcolor";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Termcolor";
+    homepage = https://pypi.python.org/pypi/termcolor;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/terminaltables/default.nix b/pkgs/development/python-modules/terminaltables/default.nix
new file mode 100644
index 000000000000..bb6961f77ecf
--- /dev/null
+++ b/pkgs/development/python-modules/terminaltables/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "terminaltables";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f3eb0eb92e3833972ac36796293ca0906e998dc3be91fbe1f8615b331b853b81";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Display simple tables in terminals";
+    homepage = "https://github.com/Robpol86/terminaltables";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/testpath/default.nix b/pkgs/development/python-modules/testpath/default.nix
new file mode 100644
index 000000000000..cda5abda5292
--- /dev/null
+++ b/pkgs/development/python-modules/testpath/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "testpath";
+  version = "0.3";
+  format = "wheel";
+
+  src = fetchPypi {
+    inherit pname version format;
+    sha256 = "f16b2cb3b03e1ada4fb0200b265a4446f92f3ba4b9d88ace34f51c54ab6d294e";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Test utilities for code working with files and commands";
+    license = licenses.mit;
+    homepage = https://github.com/jupyter/testpath;
+  };
+
+}
diff --git a/pkgs/development/python-modules/testrepository/default.nix b/pkgs/development/python-modules/testrepository/default.nix
new file mode 100644
index 000000000000..dbc342c1c4da
--- /dev/null
+++ b/pkgs/development/python-modules/testrepository/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, testtools
+, testresources
+, pbr
+, subunit
+, fixtures
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "testrepository";
+  version = "0.0.20";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m";
+  };
+
+  buildInputs = [ testtools testresources ];
+  propagatedBuildInputs = [ pbr subunit fixtures ];
+
+  checkPhase = ''
+    ${python.interpreter} ./testr
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A database of test results which can be used as part of developer workflow";
+    homepage = https://pypi.python.org/pypi/testrepository;
+    license = licenses.bsd2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/testscenarios/default.nix b/pkgs/development/python-modules/testscenarios/default.nix
new file mode 100644
index 000000000000..61e2ce5a81e9
--- /dev/null
+++ b/pkgs/development/python-modules/testscenarios/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, testtools
+}:
+
+buildPythonPackage rec {
+  pname = "testscenarios";
+  version = "0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg";
+  };
+
+  propagatedBuildInputs = [ testtools ];
+
+  meta = with stdenv.lib; {
+    description = "A pyunit extension for dependency injection";
+    homepage = https://pypi.python.org/pypi/testscenarios;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/threadpool/default.nix b/pkgs/development/python-modules/threadpool/default.nix
new file mode 100644
index 000000000000..b3d7f58c66dc
--- /dev/null
+++ b/pkgs/development/python-modules/threadpool/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "threadpool";
+  version = "1.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "197gzrxn9lbk0q1v079814c6s05cr4rwzyl6c1m6inkyif4yzr6c";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://chrisarndt.de/projects/threadpool/;
+    description = "Easy to use object-oriented thread pool framework";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/thrift/default.nix b/pkgs/development/python-modules/thrift/default.nix
new file mode 100644
index 000000000000..932c642e9b18
--- /dev/null
+++ b/pkgs/development/python-modules/thrift/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "thrift";
+  version = "0.9.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dfbc3d3bd19d396718dab05abaf46d93ae8005e2df798ef02e32793cd963877e";
+  };
+
+  # No tests. Breaks when not disabling.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Python bindings for the Apache Thrift RPC system";
+    homepage = http://thrift.apache.org/;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hbunke ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/thumborpexif/default.nix b/pkgs/development/python-modules/thumborpexif/default.nix
new file mode 100644
index 000000000000..c3aa0136f338
--- /dev/null
+++ b/pkgs/development/python-modules/thumborpexif/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "thumbor-pexif";
+  version = "0.14";
+  disabled = ! isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "715cd24760c7c28d6270c79c9e29b55b8d952a24e0e56833d827c2c62451bc3c";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Module to parse and edit the EXIF data tags in a JPEG image";
+    homepage = http://www.benno.id.au/code/pexif/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tilestache/default.nix b/pkgs/development/python-modules/tilestache/default.nix
new file mode 100644
index 000000000000..0b919cb9c6d3
--- /dev/null
+++ b/pkgs/development/python-modules/tilestache/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, modestmaps
+, pillow
+, pycairo
+, python-mapnik
+, simplejson
+, werkzeug
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "tilestache";
+  version = "1.50.1";
+  disabled = !isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z1j35pz77lhhjdn69sq5rmz62b5m444507d8zjnp0in5xqaj6rj";
+  };
+
+  propagatedBuildInputs = [ modestmaps pillow pycairo python-mapnik simplejson werkzeug ];
+
+  meta = with stdenv.lib; {
+    description = "A tile server for rendered geographic data";
+    homepage = http://tilestache.org;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/timelib/default.nix b/pkgs/development/python-modules/timelib/default.nix
new file mode 100644
index 000000000000..39ff4b6de15e
--- /dev/null
+++ b/pkgs/development/python-modules/timelib/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "timelib";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "49142233bdb5971d64a41e05a1f80a408a02be0dc7d9f8c99e7bdd0613ba81cb";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Parse english textual date descriptions";
+    homepage = "https://github.com/pediapress/timelib/";
+    license = licenses.zlib;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tissue/default.nix b/pkgs/development/python-modules/tissue/default.nix
new file mode 100644
index 000000000000..5ed47bdd0280
--- /dev/null
+++ b/pkgs/development/python-modules/tissue/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, pep8
+}:
+
+buildPythonPackage rec {
+  pname = "tissue";
+  version = "0.9.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7e34726c3ec8fae358a7faf62de172db15716f5582e5192a109e33348bd76c2e";
+  };
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ pep8 ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/WoLpH/tissue;
+    description = "Tissue - automated pep8 checker for nose";
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/tkinter/default.nix b/pkgs/development/python-modules/tkinter/default.nix
new file mode 100644
index 000000000000..bd242c62ab8d
--- /dev/null
+++ b/pkgs/development/python-modules/tkinter/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, python
+, py
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  name = "tkinter-${python.version}";
+  src = py;
+  format = "other";
+
+  disabled = isPyPy;
+
+  installPhase = ''
+    # Move the tkinter module
+    mkdir -p $out/${py.sitePackages}
+    mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    # Update the rpath to point to python without x11Support
+    old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
+    new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
+    patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
+  '';
+
+  meta = py.meta;
+
+}
diff --git a/pkgs/development/python-modules/tlsh/default.nix b/pkgs/development/python-modules/tlsh/default.nix
new file mode 100644
index 000000000000..893fe0240b60
--- /dev/null
+++ b/pkgs/development/python-modules/tlsh/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "tlsh";
+  version = "3.4.5";
+
+  src = fetchFromGitHub {
+    owner = "trendmicro";
+    repo = "tlsh";
+    rev = "22fa9a62068b92c63f2b5a87004a7a7ceaac1930";
+    sha256 = "1ydliir308xn4ywy705mmsh7863ldlixdvpqwdhbipzq9vfpmvll";
+  };
+
+  buildInputs = [ pkgs.cmake ];
+
+  # no test data
+  doCheck = false;
+
+  preConfigure = ''
+    mkdir build
+    cd build
+    cmake ..
+    cd ../py_ext
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Trend Micro Locality Sensitive Hash";
+    homepage = https://github.com/trendmicro/tlsh;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tlslite/default.nix b/pkgs/development/python-modules/tlslite/default.nix
new file mode 100644
index 000000000000..75d622ef34f3
--- /dev/null
+++ b/pkgs/development/python-modules/tlslite/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "tlslite";
+  version = "0.4.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fxx6d3nw5r1hqna1h2jvqhcygn9fyshlm0gh3gp0b1ji824gd6r";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A pure Python implementation of SSL and TLS";
+    homepage = https://pypi.python.org/pypi/tlslite;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tokenlib/default.nix b/pkgs/development/python-modules/tokenlib/default.nix
new file mode 100644
index 000000000000..24f54b98a96e
--- /dev/null
+++ b/pkgs/development/python-modules/tokenlib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+, requests
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "tokenlib";
+  version = "0.3.1";
+
+  src = fetchgit {
+    url = https://github.com/mozilla-services/tokenlib.git;
+    rev = "refs/tags/${version}";
+    sha256 = "0bq6dqyfwh29pg8ngmrm4mx4q27an9lsj0p9l79p9snn4g2rxzc8";
+  };
+
+  propagatedBuildInputs = [ requests webob ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/mozilla-services/tokenlib;
+    description = "Generic support library for signed-token-based auth schemes";
+    license = licenses.mpl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/toposort/default.nix b/pkgs/development/python-modules/toposort/default.nix
new file mode 100644
index 000000000000..67b946b352f7
--- /dev/null
+++ b/pkgs/development/python-modules/toposort/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "toposort";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1izmirbwmd9xrk7rq83p486cvnsslfa5ljvl7rijj1r64zkcnf3a";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A topological sort algorithm";
+    homepage = https://pypi.python.org/pypi/toposort/1.1;
+    maintainers = with maintainers; [ tstrobel ];
+    platforms = platforms.linux;
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/traceback2/default.nix b/pkgs/development/python-modules/traceback2/default.nix
new file mode 100644
index 000000000000..fe15285f0653
--- /dev/null
+++ b/pkgs/development/python-modules/traceback2/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pbr
+, linecache2
+}:
+
+buildPythonPackage rec {
+  version = "1.4.0";
+  pname = "traceback2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05";
+  };
+
+  propagatedBuildInputs = [ pbr linecache2 ];
+
+  # circular dependencies for tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A backport of traceback to older supported Pythons";
+    homepage = https://pypi.python.org/pypi/traceback2/;
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/tracing/default.nix b/pkgs/development/python-modules/tracing/default.nix
new file mode 100644
index 000000000000..843f26508ae4
--- /dev/null
+++ b/pkgs/development/python-modules/tracing/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "tracing";
+  version = "0.8";
+
+  src = fetchurl {
+    url = "http://code.liw.fi/debian/pool/main/p/python-tracing/python-tracing_${version}.orig.tar.gz";
+    sha256 = "1l4ybj5rvrrcxf8csyq7qx52izybd502pmx70zxp46gxqm60d2l0";
+  };
+
+  buildInputs = [ sphinx ];
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://liw.fi/tracing/;
+    description = "Python debug logging helper";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/traits/default.nix b/pkgs/development/python-modules/traits/default.nix
new file mode 100644
index 000000000000..380827e64881
--- /dev/null
+++ b/pkgs/development/python-modules/traits/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, pytest
+, numpy
+, isPy33
+}:
+
+buildPythonPackage rec {
+  pname = "traits";
+  version = "4.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0w43qv36wnrimlh0nzzgg81315a18yza3vk494wqxf1l19g390jx";
+  };
+
+  # Use pytest because its easier to discover tests
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ numpy ];
+
+  checkPhase = ''
+    py.test $out/${python.sitePackages}
+  '';
+
+  # Test suite is broken for 3.x on latest release
+  # https://github.com/enthought/traits/issues/187
+  # https://github.com/enthought/traits/pull/188
+  # Furthermore, some tests fail due to being in a chroot
+  doCheck = isPy33;
+
+  meta = with stdenv.lib; {
+    description = "Explicitly typed attributes for Python";
+    homepage = https://pypi.python.org/pypi/traits;
+    license = "BSD";
+  };
+
+}
diff --git a/pkgs/development/python-modules/translationstring/default.nix b/pkgs/development/python-modules/translationstring/default.nix
new file mode 100644
index 000000000000..56640a4c0677
--- /dev/null
+++ b/pkgs/development/python-modules/translationstring/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "translationstring";
+  version = "1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4ee44cfa58c52ade8910ea0ebc3d2d84bdcad9fa0422405b1801ec9b9a65b72d";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://pylonsproject.org/;
+    description = "Utility library for i18n relied on by various Repoze and Pyramid packages";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/transmissionrpc/default.nix b/pkgs/development/python-modules/transmissionrpc/default.nix
new file mode 100644
index 000000000000..932045b6502d
--- /dev/null
+++ b/pkgs/development/python-modules/transmissionrpc/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "transmissionrpc";
+  version = "0.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ec43b460f9fde2faedbfa6d663ef495b3fd69df855a135eebe8f8a741c0dde60";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  meta = with stdenv.lib; {
+    description = "Python implementation of the Transmission bittorent client RPC protocol";
+    homepage = https://pypi.python.org/pypi/transmissionrpc/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/trezor_agent/default.nix b/pkgs/development/python-modules/trezor_agent/default.nix
new file mode 100644
index 000000000000..baca97be8777
--- /dev/null
+++ b/pkgs/development/python-modules/trezor_agent/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, trezor
+, libagent
+, ecdsa
+, ed25519
+, mnemonic
+, keepkey
+, semver
+}:
+
+buildPythonPackage rec{
+  pname = "trezor_agent";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i5cdamlf3c0ym600pjklij74p8ifj9cv7xrpnrfl1b8nkadswbz";
+  };
+
+  propagatedBuildInputs = [ trezor libagent ecdsa ed25519 mnemonic keepkey semver ];
+
+  meta = with stdenv.lib; {
+    description = "Using Trezor as hardware SSH agent";
+    homepage = https://github.com/romanz/trezor-agent;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ np ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ttystatus/default.nix b/pkgs/development/python-modules/ttystatus/default.nix
new file mode 100644
index 000000000000..042b4a196421
--- /dev/null
+++ b/pkgs/development/python-modules/ttystatus/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, sphinx
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "ttystatus";
+  version = "0.23";
+  disabled = isPy3k;
+
+  src = fetchurl {
+    url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
+    sha256 = "0ymimviyjyh2iizqilg88g4p26f5vpq1zm3cvg7dr7q4y3gmik8y";
+  };
+
+  buildInputs = [ sphinx ];
+
+  # error: invalid command 'test'
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://liw.fi/ttystatus/;
+    description = "Progress and status updates on terminals for Python";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/tvdb_api/default.nix b/pkgs/development/python-modules/tvdb_api/default.nix
new file mode 100644
index 000000000000..758c699d4466
--- /dev/null
+++ b/pkgs/development/python-modules/tvdb_api/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests-cache
+}:
+
+buildPythonPackage rec {
+  pname = "tvdb_api";
+  version = "1.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hq887yb3rwc0rcw32lh7xdkk9bbrqy274aspzqkd6f7dyhp73ih";
+  };
+
+  propagatedBuildInputs = [ requests-cache ];
+
+  meta = with stdenv.lib; {
+    description = "Simple to use TVDB (thetvdb.com) API in Python.";
+    homepage = "https://github.com/dbr/tvdb_api";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/tvnamer/default.nix b/pkgs/development/python-modules/tvnamer/default.nix
new file mode 100644
index 000000000000..172c44239203
--- /dev/null
+++ b/pkgs/development/python-modules/tvnamer/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, tvdb_api
+}:
+
+buildPythonPackage rec {
+  pname = "tvnamer";
+  version = "2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10iizmwna2xpyc2694hsrvny68y3bdq576p8kxsvg5gj2spnsxav";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ tvdb_api ];
+
+  # a ton of tests fail with: IOError: tvnamer/main.py could not be found in . or ..
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Automatic TV episode file renamer, uses data from thetvdb.com via tvdb_api.";
+    homepage = "https://github.com/dbr/tvnamer";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twiggy/default.nix b/pkgs/development/python-modules/twiggy/default.nix
new file mode 100644
index 000000000000..550ec3279900
--- /dev/null
+++ b/pkgs/development/python-modules/twiggy/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "Twiggy";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4e8f1894e5aee522db6cb245ccbfde3c5d1aa08d31330c7e3af783b0e66eec23";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://twiggy.wearpants.org;
+    # Taken from http://i.wearpants.org/blog/meet-twiggy/
+    description = "Twiggy is the first totally new design for a logger since log4j";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ pierron ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-collections/default.nix b/pkgs/development/python-modules/twitter-common-collections/default.nix
new file mode 100644
index 000000000000..b2d6054aa258
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-collections/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, twitter-common-lang
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.collections";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wf8ks6y2kalx2inzayq0w4kh3kg25daik1ac7r6y79i03fslsc5";
+  };
+
+  propagatedBuildInputs = [ twitter-common-lang ];
+
+  meta = with stdenv.lib; {
+    description = "Twitter's common collections";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-confluence/default.nix b/pkgs/development/python-modules/twitter-common-confluence/default.nix
new file mode 100644
index 000000000000..53605baa3d5f
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-confluence/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, twitter-common-log
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.confluence";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1i2fjn23cmms81f1fhvvkg6hgzqpw07dlqg3ydz6cqv2glw7zq26";
+  };
+
+  propagatedBuildInputs = [ twitter-common-log ];
+
+  meta = with stdenv.lib; {
+    description = "Twitter's API to the confluence wiki";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-dirutil/default.nix b/pkgs/development/python-modules/twitter-common-dirutil/default.nix
new file mode 100644
index 000000000000..0172232a7504
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-dirutil/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, twitter-common-lang
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.dirutil";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wpjfmmxsdwnbx5dl13is4zkkpfcm94ksbzas9y2qhgswfa9jqha";
+  };
+
+  propagatedBuildInputs = [ twitter-common-lang ];
+
+  meta = with stdenv.lib; {
+    description = "Utilities for manipulating and finding files and directories";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-lang/default.nix b/pkgs/development/python-modules/twitter-common-lang/default.nix
new file mode 100644
index 000000000000..3541dacce4e5
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-lang/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.lang";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1l8fmnsrx7hgg3ivslg588rnl9n1gfjn2w6224fr8rs7zmkd5lan";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Twitter's 2.x / 3.x compatibility swiss-army knife";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-log/default.nix b/pkgs/development/python-modules/twitter-common-log/default.nix
new file mode 100644
index 000000000000..e3e1f2859dae
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-log/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, twitter-common-options
+, twitter-common-dirutil
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.log";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bdzbxx2bxwpf57xaxfz1nblzgfvhlidz8xqd7s84c62r3prh02v";
+  };
+
+  propagatedBuildInputs = [ twitter-common-options twitter-common-dirutil ];
+
+  meta = with stdenv.lib; {
+    description = "Twitter's common logging library";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter-common-options/default.nix b/pkgs/development/python-modules/twitter-common-options/default.nix
new file mode 100644
index 000000000000..36b18403fab5
--- /dev/null
+++ b/pkgs/development/python-modules/twitter-common-options/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname   = "twitter.common.options";
+  version = "0.3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d1czag5mcxg0vcnlklspl2dvdab9kmznsycj04d3vggi158ljrd";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Twitter's optparse wrapper";
+    homepage    = "https://twitter.github.io/commons/";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/twitter/default.nix b/pkgs/development/python-modules/twitter/default.nix
new file mode 100644
index 000000000000..d8f863cab8b5
--- /dev/null
+++ b/pkgs/development/python-modules/twitter/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "twitter";
+  version = "1.15.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1m6b17irb9klc345k8174pni724jzy2973z2x2jg69h83hipjw2c";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Twitter API library";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ thoughtpolice ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 2bfdbae918a1..5536c68e2bec 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted,isPy37 }:
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "18.7.1";
+  version = "18.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "701de939e90bb80f7e085357081552437526752199def5541dddfc34c0b0593f";
+    sha256 = "67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe";
   };
 
   checkInputs = [ pytest mock ];
@@ -17,6 +17,9 @@ buildPythonPackage rec {
     py.test -k "not test_sdist"
   '';
 
+  # Needs some fixing for 3.7
+  doCheck = !isPy37;
+
   meta = with stdenv.lib; {
     description = "Utilities to support code that runs unmodified on Twisted and asyncio.";
     homepage    = "https://github.com/crossbario/txaio";
diff --git a/pkgs/development/python-modules/txamqp/default.nix b/pkgs/development/python-modules/txamqp/default.nix
new file mode 100644
index 000000000000..2c3ee66663f6
--- /dev/null
+++ b/pkgs/development/python-modules/txamqp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, twisted
+}:
+
+buildPythonPackage rec {
+  pname = "txamqp";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "https://launchpad.net/txamqp/trunk/${version}/+download/python-txamqp_${version}.orig.tar.gz";
+    sha256 = "1r2ha0r7g14i4b5figv2spizjrmgfpspdbl1m031lw9px2hhm463";
+  };
+
+  buildInputs = [ twisted ];
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/txamqp;
+    description = "Library for communicating with AMQP peers and brokers using Twisted";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rickynils ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/txgithub/default.nix b/pkgs/development/python-modules/txgithub/default.nix
new file mode 100644
index 000000000000..5340b202e688
--- /dev/null
+++ b/pkgs/development/python-modules/txgithub/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyopenssl
+, twisted
+, service-identity
+}:
+
+buildPythonPackage rec {
+  pname = "txgithub";
+  version = "15.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16gbizy8vkxasxylwzj4p66yw8979nvzxdj6csidgmng7gi2k8nx";
+  };
+
+  propagatedBuildInputs = [ pyopenssl twisted service-identity ];
+
+  # fix python3 issues
+  patchPhase = ''
+    sed -i 's/except usage.UsageError, errortext/except usage.UsageError as errortext/' txgithub/scripts/create_token.py
+    sed -i 's/except usage.UsageError, errortext/except usage.UsageError as errortext/' txgithub/scripts/gist.py
+    sed -i 's/print response\[\x27html_url\x27\]/print(response\[\x27html_url\x27\])/' txgithub/scripts/gist.py
+    sed -i '41d' txgithub/scripts/gist.py
+    sed -i '41d' txgithub/scripts/gist.py
+  '';
+
+  # No tests distributed
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "GitHub API client implemented using Twisted.";
+    homepage    = "https://github.com/tomprince/txgithub";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ nand0p ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/txrequests/default.nix b/pkgs/development/python-modules/txrequests/default.nix
new file mode 100644
index 000000000000..c1d98738b562
--- /dev/null
+++ b/pkgs/development/python-modules/txrequests/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, twisted
+, requests
+, cryptography
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "txrequests";
+  version = "0.9.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kkxxd17ar5gyjkz9yrrdr15a64qw6ym60ndi0zbwx2s634yfafw";
+  };
+
+  propagatedBuildInputs = [ twisted requests cryptography ];
+
+  # Require network access
+  doCheck = false;
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Asynchronous Python HTTP for Humans.";
+    homepage    = "https://github.com/tardyp/txrequests";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ nand0p ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/typogrify/default.nix b/pkgs/development/python-modules/typogrify/default.nix
new file mode 100644
index 000000000000..85323cc77e71
--- /dev/null
+++ b/pkgs/development/python-modules/typogrify/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, django
+, smartypants
+, jinja2
+}:
+
+buildPythonPackage rec {
+  pname = "typogrify";
+  version = "2.0.7";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38";
+  };
+
+  propagatedBuildInputs = [ django smartypants jinja2 ];
+
+  # Wants to set up Django
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Filters to enhance web typography, including support for Django & Jinja templates";
+    homepage = "https://github.com/mintchaos/typogrify";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ garbas ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix
new file mode 100644
index 000000000000..a9d68978c3b0
--- /dev/null
+++ b/pkgs/development/python-modules/ujson/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "ujson";
+  version = "1.35";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/ujson;
+    description = "Ultra fast JSON encoder and decoder for Python";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/umalqurra/default.nix b/pkgs/development/python-modules/umalqurra/default.nix
new file mode 100644
index 000000000000..a41921a9d8cf
--- /dev/null
+++ b/pkgs/development/python-modules/umalqurra/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "umalqurra";
+  version = "0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "719f6a36f908ada1c29dae0d934dd0f1e1f6e3305784edbec23ad719397de678";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  # See for license
+  # https://github.com/tytkal/python-hijiri-ummalqura/issues/4
+  meta = with stdenv.lib; {
+    description = "Date Api that support Hijri Umalqurra calendar";
+    homepage = https://github.com/tytkal/python-hijiri-ummalqura;
+    license = with licenses; [ publicDomain ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
index ed177be1c195..9b6059978eb1 100644
--- a/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/pkgs/development/python-modules/uncompyle6/default.nix
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Python cross-version byte-code deparser";
     homepage = https://github.com/rocky/python-uncompyle6/;
-    license = licenses.mit;
+    license = licenses.gpl3;
   };
 
 }
diff --git a/pkgs/development/python-modules/unicodecsv/default.nix b/pkgs/development/python-modules/unicodecsv/default.nix
new file mode 100644
index 000000000000..d0f54a7c6b2b
--- /dev/null
+++ b/pkgs/development/python-modules/unicodecsv/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "0.14.1";
+  pname = "unicodecsv";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z7pdwkr6lpsa7xbyvaly7pq3akflbnz8gq62829lr28gl1hi301";
+  };
+
+  # ImportError: No module named runtests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Drop-in replacement for Python2's stdlib csv module, with unicode support";
+    homepage = https://github.com/jdunck/python-unicodecsv;
+    maintainers = with maintainers; [ koral ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/unittest2/default.nix b/pkgs/development/python-modules/unittest2/default.nix
new file mode 100644
index 000000000000..85ca7157e12c
--- /dev/null
+++ b/pkgs/development/python-modules/unittest2/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, traceback2
+}:
+
+buildPythonPackage rec {
+  version = "1.1.0";
+  pname = "unittest2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212";
+  };
+
+  propagatedBuildInputs = [ six traceback2 ];
+
+  # # 1.0.0 and up create a circle dependency with traceback2/pbr
+  doCheck = false;
+
+  postPatch = ''
+    # argparse is needed for python < 2.7, which we do not support anymore.
+    substituteInPlace setup.py --replace "argparse" ""
+
+    # # fixes a transient error when collecting tests, see https://bugs.launchpad.net/python-neutronclient/+bug/1508547
+    sed -i '510i\        return None, False' unittest2/loader.py
+    # https://github.com/pypa/packaging/pull/36
+    sed -i 's/version=VERSION/version=str(VERSION)/' setup.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A backport of the new features added to the unittest testing framework";
+    homepage = https://pypi.python.org/pypi/unittest2;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/unpaddedbase64/default.nix b/pkgs/development/python-modules/unpaddedbase64/default.nix
new file mode 100644
index 000000000000..b69f894cb5cb
--- /dev/null
+++ b/pkgs/development/python-modules/unpaddedbase64/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchgit
+}:
+
+buildPythonPackage rec {
+  pname = "unpaddedbase64";
+  version = "1.1.0";
+
+  src = fetchgit {
+    url = "https://github.com/matrix-org/python-unpaddedbase64.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/matrix-org/python-unpaddedbase64;
+    description = "Unpadded Base64";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/pkgs/development/python-modules/upass/default.nix b/pkgs/development/python-modules/upass/default.nix
new file mode 100644
index 000000000000..baf536fdbadd
--- /dev/null
+++ b/pkgs/development/python-modules/upass/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, pyperclip
+, urwid
+}:
+
+buildPythonPackage rec {
+  version = "0.1.4";
+  pname = "upass";
+
+  src = fetchurl {
+    url = "https://github.com/Kwpolska/upass/archive/v${version}.tar.gz";
+    sha256 = "0f2lyi7xhvb60pvzx82dpc13ksdj5k92ww09czclkdz8k0dxa7hb";
+  };
+
+  propagatedBuildInputs = [ pyperclip urwid ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Console UI for pass";
+    homepage = https://github.com/Kwpolska/upass;
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/uptime/default.nix b/pkgs/development/python-modules/uptime/default.nix
new file mode 100644
index 000000000000..035acbcec2b6
--- /dev/null
+++ b/pkgs/development/python-modules/uptime/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "uptime";
+  version = "3.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wr9jkixprlywz0plyn5p42a5fd31aiwvjrxdvj7r02vfxa04c3w";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Cairnarvon/uptime;
+    description = "Cross-platform way to retrieve system uptime and boot time";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ rob ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/uritemplate_py/default.nix b/pkgs/development/python-modules/uritemplate_py/default.nix
new file mode 100644
index 000000000000..2fd76926d2d1
--- /dev/null
+++ b/pkgs/development/python-modules/uritemplate_py/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "uritemplate.py";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k5zvc5fyyrgv33mi3p86a9jn5n0pqffs9cviz92fw6q1kf7zvmr";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/uri-templates/uritemplate-py;
+    description = "Python implementation of URI Template";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pSub ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/urwidtrees/default.nix b/pkgs/development/python-modules/urwidtrees/default.nix
new file mode 100644
index 000000000000..ac9cf73cab17
--- /dev/null
+++ b/pkgs/development/python-modules/urwidtrees/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, urwid
+}:
+
+buildPythonPackage rec {
+  name = "urwidtrees";
+  version  = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "pazz";
+    repo = "urwidtrees";
+    rev = "${version}";
+    sha256 = "03gpcdi45z2idy1fd9zv8v9naivmpfx65hshm8r984k9wklv1dsa";
+  };
+
+  propagatedBuildInputs = [ urwid ];
+
+  meta = with stdenv.lib; {
+    description = "Tree widgets for urwid";
+    homepage = https://github.com/pazz/urwidtrees;
+    license = licenses.gpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/versiontools/default.nix b/pkgs/development/python-modules/versiontools/default.nix
new file mode 100644
index 000000000000..e92dbae8138e
--- /dev/null
+++ b/pkgs/development/python-modules/versiontools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "versiontools";
+  version = "1.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1xhl6kl7f4srgnw6zw4lr8j2z5vmrbaa83nzn2c9r2m1hwl36sd9";
+  };
+
+  doCheck = (!isPy3k);
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/versiontools;
+    description = "Smart replacement for plain tuple used in __version__";
+    license = licenses.lgpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/veryprettytable/default.nix b/pkgs/development/python-modules/veryprettytable/default.nix
new file mode 100644
index 000000000000..8d71e6331f5b
--- /dev/null
+++ b/pkgs/development/python-modules/veryprettytable/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, termcolor
+, colorama
+}:
+
+buildPythonPackage rec {
+  pname = "veryprettytable";
+  version = "0.8.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k1rifz8x6qcicmx2is9vgxcj0qb2f5pvzrp7zhmvbmci3yack3f";
+  };
+
+  propagatedBuildInputs = [ termcolor colorama ];
+
+  meta = with stdenv.lib; {
+    description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+    homepage = https://github.com/smeggingsmegger/VeryPrettyTable;
+    license = licenses.free;
+  };
+
+}
diff --git a/pkgs/development/python-modules/virtualenv-clone/default.nix b/pkgs/development/python-modules/virtualenv-clone/default.nix
new file mode 100644
index 000000000000..03a66b631653
--- /dev/null
+++ b/pkgs/development/python-modules/virtualenv-clone/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytest
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "virtualenv-clone";
+  version = "0.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7087ba4eb48acfd5209a3fd03e15d072f28742619127c98333057e32748d91c4";
+  };
+
+  buildInputs = [ pytest ];
+  propagatedBuildInputs = [ virtualenv ];
+
+  # needs tox to run the tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/edwardgeorge/virtualenv-clone;
+    description = "Script to clone virtualenvs";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/virtualenvwrapper/default.nix b/pkgs/development/python-modules/virtualenvwrapper/default.nix
new file mode 100644
index 000000000000..4bf1778b9d54
--- /dev/null
+++ b/pkgs/development/python-modules/virtualenvwrapper/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pbr
+, pip
+, pkgs
+, stevedore
+, virtualenv
+, virtualenv-clone
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "virtualenvwrapper";
+  version = "4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "514cbc22218347bf7b54bdbe49e1a5f550d2d53b1ad2491c10e91ddf48fb528f";
+  };
+
+  # pip depend on $HOME setting
+  preConfigure = "export HOME=$TMPDIR";
+
+  buildInputs = [ pbr pip pkgs.which ];
+  propagatedBuildInputs = [ stevedore virtualenv virtualenv-clone ];
+
+  postPatch = ''
+    for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
+      substituteInPlace "$file" --replace "which" "${pkgs.which}/bin/which"
+
+      # We can't set PYTHONPATH in a normal way (like exporting in a wrapper
+      # script) because the user has to evaluate the script and we don't want
+      # modify the global PYTHONPATH which would affect the user's
+      # environment.
+      # Furthermore it isn't possible to just use VIRTUALENVWRAPPER_PYTHON
+      # for this workaround, because this variable is well quoted inside the
+      # shell script.
+      # (the trailing " -" is required to only replace things like these one:
+      # "$VIRTUALENVWRAPPER_PYTHON" -c "import os,[...] and not in
+      # if-statements or anything like that.
+      # ...and yes, this "patch" is hacky :)
+      substituteInPlace "$file" --replace '"$VIRTUALENVWRAPPER_PYTHON" -' 'env PYTHONPATH="$VIRTUALENVWRAPPER_PYTHONPATH" "$VIRTUALENVWRAPPER_PYTHON" -'
+    done
+  '';
+
+  postInstall = ''
+    # This might look like a dirty hack but we can't use the makeWrapper function because
+    # the wrapped file were then called via "exec". The virtualenvwrapper shell scripts
+    # aren't normal executables. Instead, the user has to evaluate them.
+
+    for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
+      local wrapper="$out/bin/$file"
+      local wrapped="$out/bin/.$file-wrapped"
+      mv "$wrapper" "$wrapped"
+
+      # WARNING: Don't indent the lines below because that would break EOF
+      cat > "$wrapper" << EOF
+export PATH="${python}/bin:\$PATH"
+export VIRTUALENVWRAPPER_PYTHONPATH="$PYTHONPATH:$(toPythonPath $out)"
+source "$wrapped"
+EOF
+
+      chmod -x "$wrapped"
+      chmod +x "$wrapper"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Enhancements to virtualenv";
+    homepage = "https://pypi.python.org/pypi/virtualenvwrapper";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/vmprof/default.nix b/pkgs/development/python-modules/vmprof/default.nix
new file mode 100644
index 000000000000..9a9693d770e7
--- /dev/null
+++ b/pkgs/development/python-modules/vmprof/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  version = "0.3.3";
+  pname = "vmprof";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "991bc2f1dc824c63e9b399f9e8606deded92a52378d0e449f258807d7556b039";
+  };
+
+  propagatedBuildInputs = [ requests six];
+
+  # No tests included
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A vmprof client";
+    license = licenses.mit;
+    homepage = https://vmprof.readthedocs.org/;
+  };
+
+}
diff --git a/pkgs/development/python-modules/vultr/default.nix b/pkgs/development/python-modules/vultr/default.nix
new file mode 100644
index 000000000000..e66e21f01a66
--- /dev/null
+++ b/pkgs/development/python-modules/vultr/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+}:
+
+buildPythonPackage rec {
+  version = "0.1.2";
+  pname = "vultr";
+
+  src = fetchFromGitHub {
+      owner = "spry-group";
+      repo = "python-vultr";
+      rev = "${version}";
+      sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # Tests disabled. They fail because they try to access the network
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Vultr.com API Client";
+    homepage = "https://github.com/spry-group/python-vultr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lihop ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/w3lib/default.nix b/pkgs/development/python-modules/w3lib/default.nix
new file mode 100644
index 000000000000..3b18b488719a
--- /dev/null
+++ b/pkgs/development/python-modules/w3lib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "w3lib";
+  version = "1.17.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0vshh300ay5wn5hwl9qcb32m71pz5s6miy0if56vm4nggy159inq";
+  };
+
+  buildInputs = [ six pytest ];
+
+  meta = with stdenv.lib; {
+    description = "A library of web-related functions";
+    homepage = "https://github.com/scrapy/w3lib";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ drewkett ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
new file mode 100644
index 000000000000..2c1536a7d8a3
--- /dev/null
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "waitress";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pw6yyxi348r2xpq3ykqnf7gwi881azv2422d2ixb0xi5jws2ky7";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+     homepage = https://github.com/Pylons/waitress;
+     description = "Waitress WSGI server";
+     license = licenses.zpl20;
+     maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
new file mode 100644
index 000000000000..86c9d435f1e0
--- /dev/null
+++ b/pkgs/development/python-modules/web/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  version = "0.37";
+  pname = "web.py";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "748c7e99ad9e36f62ea19f7965eb7dd7860b530e8f563ed60ce3e53e7409a550";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Makes web apps";
+    longDescription = ''
+      Think about the ideal way to write a web app.
+      Write the code to make it happen.
+    '';
+    homepage = "http://webpy.org/";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ layus ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/webhelpers/default.nix b/pkgs/development/python-modules/webhelpers/default.nix
new file mode 100644
index 000000000000..007f32f6cc5b
--- /dev/null
+++ b/pkgs/development/python-modules/webhelpers/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, routes
+, markupsafe
+, webob
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "WebHelpers";
+  version = "1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ea86f284e929366b77424ba9a89341f43ae8dee3cbeb8702f73bcf86058aa583";
+  };
+
+  buildInputs = [ routes markupsafe webob nose ];
+
+  # TODO: failing tests https://bitbucket.org/bbangert/webhelpers/pull-request/1/fix-error-on-webob-123/diff
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://webhelpers.readthedocs.org/en/latest/;
+    description = "Web Helpers";
+    license = licenses.free;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
new file mode 100644
index 000000000000..1271ac3483d7
--- /dev/null
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "WebOb";
+  version = "1.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10vjp2rvqiyvw157fk3sy7yds1gknzw97z4gk0qv1raskx5s2p76";
+  };
+
+  propagatedBuildInputs = [ nose pytest ];
+
+  meta = with stdenv.lib; {
+    description = "WSGI request and response object";
+    homepage = http://pythonpaste.org/webob/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/websockify/default.nix b/pkgs/development/python-modules/websockify/default.nix
new file mode 100644
index 000000000000..326e8faa6147
--- /dev/null
+++ b/pkgs/development/python-modules/websockify/default.nix
@@ -0,0 +1,24 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+}:
+
+buildPythonPackage rec {
+  version = "0.7.0";
+  pname = "websockify";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1v6pmamjprv2x55fvbdaml26ppxdw8v6xz8p0sav3368ajwwgcqc";
+  };
+
+  propagatedBuildInputs = [ numpy ];
+
+  meta = with stdenv.lib; {
+    description = "WebSockets support for any application/server";
+    homepage = https://github.com/kanaka/websockify;
+    license = licenses.lgpl3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/webtest/default.nix b/pkgs/development/python-modules/webtest/default.nix
new file mode 100644
index 000000000000..d3dd321cb03a
--- /dev/null
+++ b/pkgs/development/python-modules/webtest/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+, webob
+, six
+, beautifulsoup4
+, waitress
+, mock
+, pyquery
+, wsgiproxy2
+, PasteDeploy
+, coverage
+}:
+
+buildPythonPackage rec {
+  version = "2.0.20";
+  pname = "webtest";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0bv0qhdjakdsdgj4sk21gnpp8xp8bga4x03p6gjb83ihrsb7n4xv";
+  };
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace "nose<1.3.0" "nose"
+  '';
+
+  propagatedBuildInputs = [ nose webob six beautifulsoup4 waitress mock pyquery wsgiproxy2 PasteDeploy coverage ];
+
+  meta = with stdenv.lib; {
+    description = "Helper to test WSGI applications";
+    homepage = http://webtest.readthedocs.org/en/latest/;
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index f8868f02c2c2..fee7f8f73cda 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.31.1";
+  version = "0.32.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c";
+    sha256 = "196c9842d79262bb66fcf59faa4bd0deb27da911dbc7c6cdca931080eb1f0783";
   };
 
   checkInputs = [ pytest pytestcov coverage ];
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
new file mode 100644
index 000000000000..88e6838cf930
--- /dev/null
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, six
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "willow";
+  version = "0.2.2";
+  disabled = pythonOlder "2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "111c82fbfcda2710ce6201b0b7e0cfa1ff3c4f2f0dc788cc8dfc8db933c39c73";
+  };
+
+  propagatedBuildInputs = [ six pillow ];
+
+  # Test data is not included
+  # https://github.com/torchbox/Willow/issues/34
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Python image library that sits on top of Pillow, Wand and OpenCV";
+    homepage = https://github.com/torchbox/Willow/;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ desiderius ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/word2vec/default.nix b/pkgs/development/python-modules/word2vec/default.nix
new file mode 100644
index 000000000000..d3c294308c41
--- /dev/null
+++ b/pkgs/development/python-modules/word2vec/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, cython
+, numpy
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "word2vec";
+  version = "0.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a811e3e98a8e6dfe7bc851ebbbc2d6e5ab5142f2a134dd3c03daac997b546faa";
+  };
+
+  propagatedBuildInputs = [ cython numpy ];
+
+  checkPhase = ''
+   cd word2vec/tests;
+    ${python.interpreter} test_word2vec.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tool for computing continuous distributed representations of words";
+    homepage = "https://github.com/danielfrg/word2vec";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ NikolaMandic ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/worldengine/default.nix b/pkgs/development/python-modules/worldengine/default.nix
new file mode 100644
index 000000000000..0a49c2566409
--- /dev/null
+++ b/pkgs/development/python-modules/worldengine/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, noise
+, numpy
+, pyplatec
+, protobuf
+, purepng
+, argparse
+, h5py
+, gdal
+}:
+
+buildPythonPackage rec {
+  pname = "worldengine";
+  version = "0.19.0";
+
+  src = fetchFromGitHub {
+    owner = "Mindwerks";
+    repo = "worldengine";
+    rev = "v${version}";
+    sha256 = "1xrckb0dn2841gvp32n18gib14bpi77hmjw3r9jiyhg402iip7ry";
+  };
+
+  src-data = fetchFromGitHub {
+    owner = "Mindwerks";
+    repo = "worldengine-data";
+    rev = "029051e";
+    sha256 = "06xbf8gj3ljgr11v1n8jbs2q8pdf9wz53xdgkhpm8hdnjahgdxdm";
+  };
+
+  postUnpack = ''
+    ln -s ${src-data} worldengine-data
+  '';
+
+  buildInputs = [ nose ];
+  propagatedBuildInputs = [ noise numpy pyplatec protobuf purepng argparse h5py gdal ];
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace pypng>=0.0.18 purepng \
+      --replace 'numpy>=1.9.2, <= 1.10.0.post2' 'numpy' \
+      --replace 'argparse==1.2.1' "" \
+      --replace 'protobuf==3.0.0a3' 'protobuf' \
+      --replace 'noise==1.2.2' 'noise' \
+      --replace 'PyPlatec==1.4.0' 'PyPlatec' \
+  '';
+
+  doCheck = true;
+
+  postCheck = ''
+    nosetests tests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://world-engine.org;
+    description = "World generator using simulation of plates, rain shadow, erosion, etc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rardiol ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/wsgiproxy/default.nix b/pkgs/development/python-modules/wsgiproxy/default.nix
new file mode 100644
index 000000000000..8ae8b4aefa54
--- /dev/null
+++ b/pkgs/development/python-modules/wsgiproxy/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, paste
+, six
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "WSGIProxy";
+  version = "0.2.2";
+  disabled = isPy3k; # Judging from SyntaxError
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wqz1q8cvb81a37gb4kkxxpv4w7k8192a08qzyz67rn68ln2wcig";
+  };
+
+  propagatedBuildInputs = [ paste six ];
+
+  meta = with stdenv.lib; {
+    description = "WSGIProxy gives tools to proxy arbitrary(ish) WSGI requests to other";
+    homepage = "http://pythonpaste.org/wsgiproxy/";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/wsgiproxy2/default.nix b/pkgs/development/python-modules/wsgiproxy2/default.nix
new file mode 100644
index 000000000000..5fda762b0be7
--- /dev/null
+++ b/pkgs/development/python-modules/wsgiproxy2/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "WSGIProxy2";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "13kf9bdxrc95y9vriaz0viry3ah11nz4rlrykcfvb8nlqpx3dcm4";
+  };
+
+  propagatedBuildInputs = [ six webob ];
+
+  # circular dep on webtest
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://pythonpaste.org/wsgiproxy/;
+    description = "HTTP proxying tools for WSGI apps";
+    license = licenses.mit;
+    maintainers = with maintainers; [ garbas domenkozar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/x11_hash/default.nix b/pkgs/development/python-modules/x11_hash/default.nix
new file mode 100644
index 000000000000..060d08869b88
--- /dev/null
+++ b/pkgs/development/python-modules/x11_hash/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec{
+  version = "1.4";
+  pname = "x11_hash";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "172skm9xbbrivy1p4xabxihx9lsnzi53hvzryfw64m799k2fmp22";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Binding for X11 proof of work hashing";
+    homepage = https://github.com/mazaclub/x11_hash;
+    license = licenses.mit;
+    maintainers = with maintainers; [ np ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/xattr/default.nix b/pkgs/development/python-modules/xattr/default.nix
new file mode 100644
index 000000000000..a3da58eb9f33
--- /dev/null
+++ b/pkgs/development/python-modules/xattr/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, cffi
+}:
+
+buildPythonPackage rec {
+  pname = "xattr";
+  version = "0.7.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nbqfghgy26jyp5q7wl3rj78wr8s39m5042df2jlldg3fx6j0417";
+  };
+
+  propagatedBuildInputs = [ cffi ];
+
+  # https://github.com/xattr/xattr/issues/43
+  doCheck = false;
+
+  postBuild = ''
+    ${python.interpreter} -m compileall -f xattr
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/xattr/xattr;
+    description = "Python wrapper for extended filesystem attributes";
+    license = licenses.mit;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xcaplib/default.nix b/pkgs/development/python-modules/xcaplib/default.nix
new file mode 100644
index 000000000000..7dc670720465
--- /dev/null
+++ b/pkgs/development/python-modules/xcaplib/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchdarcs
+, isPy3k
+, eventlib
+, application
+}:
+
+buildPythonPackage rec {
+  pname = "python-xcaplib";
+  version = "1.2.0";
+  disabled = isPy3k;
+
+  src = fetchdarcs {
+    url = "http://devel.ag-projects.com/repositories/${pname}";
+    rev = "release-${version}";
+    sha256 = "0vna5r4ihv7z1yx6r93954jqskcxky77znzy1m9dg9vna1dgwfdn";
+  };
+
+  propagatedBuildInputs = [ eventlib application ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/AGProjects/python-xcaplib;
+    description = "XCAP (RFC4825) client library";
+    license = licenses.gpl2;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 76e424cf0118..39eb962c0405 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Python cross-version byte-code disassembler and marshal routines";
     homepage = https://github.com/rocky/python-xdis/;
-    license = licenses.mit;
+    license = licenses.gpl2;
   };
 
 }
diff --git a/pkgs/development/python-modules/xkcdpass/default.nix b/pkgs/development/python-modules/xkcdpass/default.nix
new file mode 100644
index 000000000000..d191ab859282
--- /dev/null
+++ b/pkgs/development/python-modules/xkcdpass/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "xkcdpass";
+  version = "1.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4c1f8bee886820c42ccc64c15c3a2275dc6d01028cf6af7c481ded87267d8269";
+  };
+
+  # No tests included
+  # https://github.com/redacted/XKCD-password-generator/issues/32
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/xkcdpass/;
+    description = "Generate secure multiword passwords/passphrases, inspired by XKCD";
+    license = licenses.bsd3;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xlib/default.nix b/pkgs/development/python-modules/xlib/default.nix
new file mode 100644
index 000000000000..0fe13917db43
--- /dev/null
+++ b/pkgs/development/python-modules/xlib/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, six
+, setuptools_scm
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "xlib";
+  version = "0.17";
+
+  src = fetchFromGitHub {
+    owner = "python-xlib";
+    repo = "python-xlib";
+    rev = "${version}";
+    sha256 = "1iiz2nq2hq9x6laavngvfngnmxbgnwh54wdbq6ncx4va7v98liyi";
+  };
+
+  # Tests require `pyutil' so disable them to avoid circular references.
+  doCheck = false;
+
+  propagatedBuildInputs = [ six setuptools_scm pkgs.xorg.libX11 ];
+
+  meta = with stdenv.lib; {
+    description = "Fully functional X client library for Python programs";
+    homepage = http://python-xlib.sourceforge.net/;
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xlrd/default.nix b/pkgs/development/python-modules/xlrd/default.nix
new file mode 100644
index 000000000000..4e94078b9bf6
--- /dev/null
+++ b/pkgs/development/python-modules/xlrd/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "xlrd";
+  version = "0.9.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8e8d3359f39541a6ff937f4030db54864836a06e42988c452db5b6b86d29ea72";
+  };
+
+  buildInputs = [ nose ];
+
+  checkPhase = ''
+    nosetests -v
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.python-excel.org/;
+    description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/xlsx2csv/default.nix b/pkgs/development/python-modules/xlsx2csv/default.nix
new file mode 100644
index 000000000000..d38506f185f4
--- /dev/null
+++ b/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "xlsx2csv";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7c6c8fa6c2774224d03a6a96049e116822484dccfa3634893397212ebcd23866";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bitprophet/alabaster;
+    description = "Convert xlsx to csv";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jb55 ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/yapsy/default.nix b/pkgs/development/python-modules/yapsy/default.nix
new file mode 100644
index 000000000000..1f4a28459be4
--- /dev/null
+++ b/pkgs/development/python-modules/yapsy/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "Yapsy";
+  version = "1.11.223";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "19pjsnqizswnczhlav4lb7zlzs0n73ijrsgksy4374b14jkkkfs5";
+  };
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://yapsy.sourceforge.net/;
+    description = "Yet another plugin system";
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/zbaemon/default.nix b/pkgs/development/python-modules/zbaemon/default.nix
new file mode 100644
index 000000000000..1a7627bf5dd9
--- /dev/null
+++ b/pkgs/development/python-modules/zbaemon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zconfig
+}:
+
+buildPythonPackage rec {
+  pname = "zdaemon";
+  version = "4.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "82d7eaa4d831ff1ecdcffcb274f3457e095c0cc86e630bc72009a863c341ab9f";
+  };
+
+  propagatedBuildInputs = [ zconfig ];
+
+  # too many deps..
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A daemon process control library and tools for Unix-based systems";
+    homepage = https://pypi.python.org/pypi/zdaemon;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zbase32/default.nix b/pkgs/development/python-modules/zbase32/default.nix
new file mode 100644
index 000000000000..aa860056fb8a
--- /dev/null
+++ b/pkgs/development/python-modules/zbase32/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptoolsDarcs
+}:
+
+buildPythonPackage rec {
+  pname = "zbase32";
+  version = "1.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2f44b338f750bd37b56e7887591bf2f1965bfa79f163b6afcbccf28da642ec56";
+  };
+
+  # Tests require `pyutil' so disable them to avoid circular references.
+  doCheck = false;
+
+  propagatedBuildInputs = [ setuptoolsDarcs ];
+
+  meta = with stdenv.lib; {
+    description = "zbase32, a base32 encoder/decoder";
+    homepage = https://pypi.python.org/pypi/zbase32;
+    license = licenses.bsd0;
+  };
+
+}
diff --git a/pkgs/development/python-modules/zdaemon/default.nix b/pkgs/development/python-modules/zdaemon/default.nix
new file mode 100644
index 000000000000..1a7627bf5dd9
--- /dev/null
+++ b/pkgs/development/python-modules/zdaemon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zconfig
+}:
+
+buildPythonPackage rec {
+  pname = "zdaemon";
+  version = "4.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "82d7eaa4d831ff1ecdcffcb274f3457e095c0cc86e630bc72009a863c341ab9f";
+  };
+
+  propagatedBuildInputs = [ zconfig ];
+
+  # too many deps..
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A daemon process control library and tools for Unix-based systems";
+    homepage = https://pypi.python.org/pypi/zdaemon;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zerobin/default.nix b/pkgs/development/python-modules/zerobin/default.nix
new file mode 100644
index 000000000000..d1cab88b45b8
--- /dev/null
+++ b/pkgs/development/python-modules/zerobin/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, cherrypy
+, bottle
+, lockfile
+, clize
+}:
+
+buildPythonPackage rec {
+  pname = "zerobin";
+  version = "20160108";
+
+  src = fetchFromGitHub {
+    owner = "sametmax";
+    repo = "0bin";
+    rev = "7da1615";
+    sha256 = "1pzcwy454kn5216pvwjqzz311s6jbh7viw9s6kw4xps6f5h44bid";
+  };
+
+  propagatedBuildInputs = [ cherrypy bottle lockfile clize ];
+
+  # zerobin doesn't have any tests, but includes a copy of cherrypy which
+  # can wrongly fail the check phase.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A client side encrypted pastebin";
+    homepage = https://0bin.net/;
+    license = licenses.wtfpl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/zfec/default.nix b/pkgs/development/python-modules/zfec/default.nix
new file mode 100644
index 000000000000..b2e5b939f429
--- /dev/null
+++ b/pkgs/development/python-modules/zfec/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptoolsDarcs
+, pyutil
+, argparse
+, isPyPy
+}:
+
+buildPythonPackage rec {
+  pname = "zfec";
+  version = "1.4.24";
+  disabled = isPyPy;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ks94zlpy7n8sb8380gf90gx85qy0p9073wi1wngg6mccxp9xsg3";
+  };
+
+  buildInputs = [ setuptoolsDarcs ];
+  propagatedBuildInputs = [ pyutil argparse ];
+
+  meta = with stdenv.lib; {
+    homepage = http://allmydata.org/trac/zfec;
+    description = "Zfec, a fast erasure codec which can be used with the command-line, C, Python, or Haskell";
+    longDescription = ''
+      Fast, portable, programmable erasure coding a.k.a. "forward
+      error correction": the generation of redundant blocks of
+      information such that if some blocks are lost then the
+      original data can be recovered from the remaining blocks. The
+      zfec package includes command-line tools, C API, Python API,
+      and Haskell API.
+    '';
+    license = licenses.gpl2Plus;
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_broken/default.nix b/pkgs/development/python-modules/zope_broken/default.nix
new file mode 100644
index 000000000000..df3a2053ebf8
--- /dev/null
+++ b/pkgs/development/python-modules/zope_broken/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "zope.broken";
+  version = "3.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "b9b8776002da4f7b6b12dfcce77eb642ae62b39586dbf60e1d9bdc992c9f2999";
+  };
+
+  buildInputs = [ zope_interface ];
+
+  meta = with stdenv.lib; {
+    homepage = http://pypi.python.org/pypi/zope.broken;
+    description = "Zope Broken Object Interfaces";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_component/default.nix b/pkgs/development/python-modules/zope_component/default.nix
new file mode 100644
index 000000000000..8b51253fe929
--- /dev/null
+++ b/pkgs/development/python-modules/zope_component/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_configuration
+, zope_event
+, zope_i18nmessageid
+, zope_interface
+, zope_testing
+}:
+
+buildPythonPackage rec {
+  pname = "zope.component";
+  version = "4.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gzbr0j6c2h0cqnpi2cjss38wrz1bcwx8xahl3vykgz5laid15l6";
+  };
+
+  propagatedBuildInputs = [ zope_configuration zope_event zope_i18nmessageid zope_interface zope_testing ];
+
+  # ignore tests because of a circular dependency on zope_security
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/zopefoundation/zope.component;
+    description = "Zope Component Architecture";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_configuration/default.nix b/pkgs/development/python-modules/zope_configuration/default.nix
new file mode 100644
index 000000000000..46ad9bd0e685
--- /dev/null
+++ b/pkgs/development/python-modules/zope_configuration/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_i18nmessageid
+, zope_schema
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "zope.configuration";
+  version = "4.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n";
+  };
+
+  propagatedBuildInputs = [ zope_i18nmessageid zope_schema ];
+
+  # Trouble with implicit namespace packages on Python3
+  # see https://github.com/pypa/setuptools/issues/912
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Zope Configuration Markup Language (ZCML)";
+    homepage = https://github.com/zopefoundation/zope.configuration;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_contenttype/default.nix b/pkgs/development/python-modules/zope_contenttype/default.nix
new file mode 100644
index 000000000000..67c5a9866880
--- /dev/null
+++ b/pkgs/development/python-modules/zope_contenttype/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "zope.contenttype";
+  version = "4.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "9decc7531ad6925057f1a667ac0ef9d658577a92b0b48dafa7daa97b78a02bbb";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.contenttype;
+    description = "A utility module for content-type (MIME type) handling";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_dottedname/default.nix b/pkgs/development/python-modules/zope_dottedname/default.nix
new file mode 100644
index 000000000000..8d5ef91b983f
--- /dev/null
+++ b/pkgs/development/python-modules/zope_dottedname/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "zope.dottedname";
+  version = "3.4.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "331d801d98e539fa6c5d50c3835ecc144c429667f483281505de53fc771e6bf5";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://pypi.python.org/pypi/zope.dottedname;
+    description = "Resolver for Python dotted names";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_event/default.nix b/pkgs/development/python-modules/zope_event/default.nix
new file mode 100644
index 000000000000..490d2e48c14a
--- /dev/null
+++ b/pkgs/development/python-modules/zope_event/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "zope.event";
+  version = "4.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w858k9kmgzfj36h65kp27m9slrmykvi5cjq6c119xqnaz5gdzgm";
+  };
+
+  meta = with stdenv.lib; {
+    description = "An event publishing system";
+    homepage = https://pypi.python.org/pypi/zope.event;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_exceptions/default.nix b/pkgs/development/python-modules/zope_exceptions/default.nix
new file mode 100644
index 000000000000..3afb936d48f2
--- /dev/null
+++ b/pkgs/development/python-modules/zope_exceptions/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "zope.exceptions";
+  version = "4.0.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl";
+  };
+
+  propagatedBuildInputs = [ zope_interface ];
+
+  # circular deps
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Exception interfaces and implementations";
+    homepage = https://pypi.python.org/pypi/zope.exceptions;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_filerepresentation/default.nix b/pkgs/development/python-modules/zope_filerepresentation/default.nix
new file mode 100644
index 000000000000..f77a018c0e2d
--- /dev/null
+++ b/pkgs/development/python-modules/zope_filerepresentation/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_schema
+}:
+
+buildPythonPackage rec {
+  pname = "zope.filerepresentation";
+  version = "3.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d775ebba4aff7687e0381f050ebda4e48ce50900c1438f3f7e901220634ed3e0";
+  };
+
+  propagatedBuildInputs = [ zope_schema ];
+
+  meta = with stdenv.lib; {
+    homepage = http://zopefilerepresentation.readthedocs.io/;
+    description = "File-system Representation Interfaces";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_i18n/default.nix b/pkgs/development/python-modules/zope_i18n/default.nix
new file mode 100644
index 000000000000..6f61bd0f99a8
--- /dev/null
+++ b/pkgs/development/python-modules/zope_i18n/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pytz
+, zope_component
+}:
+
+buildPythonPackage rec {
+  pname = "zope.i18n";
+  version = "3.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "045nnimmshibcq71yym2d8yrs6wzzhxq5gl7wxjnkpyjm5y0hfkm";
+  };
+
+  propagatedBuildInputs = [ pytz zope_component ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/zopefoundation/zope.i18n;
+    description = "Zope Internationalization Support";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_i18nmessageid/default.nix b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
new file mode 100644
index 000000000000..70e3f3fb0180
--- /dev/null
+++ b/pkgs/development/python-modules/zope_i18nmessageid/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "zope.i18nmessageid";
+  version = "4.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/zopefoundation/zope.i18nmessageid;
+    description = "Message Identifiers for internationalization";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_lifecycleevent/default.nix b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
new file mode 100644
index 000000000000..902e6c51adb4
--- /dev/null
+++ b/pkgs/development/python-modules/zope_lifecycleevent/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_event
+, zope_component
+}:
+
+buildPythonPackage rec {
+  pname = "zope.lifecycleevent";
+  version = "3.7.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s5brphqzzz89cykg61gy7zcmz0ryq1jj2va7gh2n1b3cccllp95";
+  };
+
+  propagatedBuildInputs = [ zope_event zope_component ];
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.lifecycleevent;
+    description = "Object life-cycle events";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_location/default.nix b/pkgs/development/python-modules/zope_location/default.nix
new file mode 100644
index 000000000000..be7d50025d00
--- /dev/null
+++ b/pkgs/development/python-modules/zope_location/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_proxy
+}:
+
+buildPythonPackage rec {
+  pname = "zope.location";
+  version = "4.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74";
+  };
+
+  propagatedBuildInputs = [ zope_proxy ];
+
+  # ignore circular dependency on zope_schema
+  preBuild = ''
+    sed -i '/zope.schema/d' setup.py
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.location/;
+    description = "Zope Location";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_proxy/default.nix b/pkgs/development/python-modules/zope_proxy/default.nix
new file mode 100644
index 000000000000..a0fdd70e2a93
--- /dev/null
+++ b/pkgs/development/python-modules/zope_proxy/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "zope.proxy";
+  version = "4.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4";
+  };
+
+  propagatedBuildInputs = [ zope_interface ];
+
+  # circular deps
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.proxy;
+    description = "Generic Transparent Proxies";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_schema/default.nix b/pkgs/development/python-modules/zope_schema/default.nix
new file mode 100644
index 000000000000..71e571dba336
--- /dev/null
+++ b/pkgs/development/python-modules/zope_schema/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_location
+, zope_event
+, zope_interface
+, zope_testing
+}:
+
+buildPythonPackage rec {
+  pname = "zope.schema";
+  version = "4.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank";
+  };
+
+  propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
+
+  # ImportError: No module named 'zope.event'
+  # even though zope_event has been included.
+  # Package seems to work fine.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/zopefoundation/zope.schema;
+    description = "zope.interface extension for defining data schemas";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_size/default.nix b/pkgs/development/python-modules/zope_size/default.nix
new file mode 100644
index 000000000000..8be9a04ae3fa
--- /dev/null
+++ b/pkgs/development/python-modules/zope_size/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, zope_i18nmessageid
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "zope.size";
+  version = "3.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "006xfkhvmypwd3ww9gbba4zly7n9w30bpp1h74d53la7l7fiqk2f";
+  };
+
+  propagatedBuildInputs = [ zope_i18nmessageid zope_interface ];
+
+  meta = with stdenv.lib; {
+    homepage = http://github.com/zopefoundation/zope.size;
+    description = "Interfaces and simple adapter that give the size of an object";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/zope_testing/default.nix b/pkgs/development/python-modules/zope_testing/default.nix
new file mode 100644
index 000000000000..4e28113a8a1a
--- /dev/null
+++ b/pkgs/development/python-modules/zope_testing/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPyPy
+, zope_interface
+, zope_exceptions
+, zope_location
+}:
+
+buildPythonPackage rec {
+  pname = "zope.testing";
+  version = "4.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1vvxhjmzl7vw2i1akfj1xbggwn36270ym7f2ic9xwbaswfw1ap56";
+  };
+
+  doCheck = !isPyPy;
+
+  propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
+
+  meta = with stdenv.lib; {
+    description = "Zope testing helpers";
+    homepage =  http://pypi.python.org/pypi/zope.testing;
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ goibhniu ];
+  };
+
+}
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 3d7a8abf4fe6..175114017f30 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, ocamlPackages, cf-private, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "0.85.0";
+  version = "0.86.0";
   name = "flow-${version}";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "0kci017bl4ihq89zpwlgdlwzv7kili8146940kyar5v66kgf7xsh";
+    sha256 = "0sxg066bfkgqyq2fcjkff4jbhpxrzsqgz53h2b4wscxr076r9bjp";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index ccc2cf9b4ab5..a371bc2e0022 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb, llvm, cctools, xnu, bootstrap_cmds }:
 
 stdenv.mkDerivation rec {
-  name = "valgrind-3.13.0";
+  name = "valgrind-3.14.0";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
-    sha256 = "0fqc3684grrbxwsic1rc5ryxzxmigzjx9p5vf3lxa37h0gpq0rnp";
+    sha256 = "19ds42jwd89zrsjb94g7gizkkzipn8xik3xykrpcqxylxyzi2z03";
   };
 
   outputs = [ "out" "dev" "man" "doc" ];
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 0ba44b1b17a7..7eff35e224c0 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, stdenv, writeTextDir, substituteAll, targetPackages }:
+{ lib, python3Packages, stdenv, writeTextDir, substituteAll, targetPackages, fetchpatch }:
 
 python3Packages.buildPythonApplication rec {
   version = "0.46.1";
@@ -41,6 +41,12 @@ python3Packages.buildPythonApplication rec {
       src = ./fix-rpath.patch;
       inherit (builtins) storeDir;
     })
+
+    # Support Python 3.7. This is part of 0.47 and 0.48.1.
+    (fetchpatch {
+      url = https://github.com/mesonbuild/meson/commit/a87496addd9160300837aa50193f4798c6f1d251.patch;
+      sha256 = "1jfn9dgib5bc8frcd65cxn3fzhp19bpbjadxjkqzbjk1v4hdbl88";
+    })
   ];
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/tools/build-managers/scons/common.nix b/pkgs/development/tools/build-managers/scons/common.nix
index 4b0242a3956d..740d04d853f7 100644
--- a/pkgs/development/tools/build-managers/scons/common.nix
+++ b/pkgs/development/tools/build-managers/scons/common.nix
@@ -14,6 +14,8 @@ in python2Packages.buildPythonApplication {
   # Fix a regression in 3.0.0 (causes build errors for some packages)
   patches = stdenv.lib.optional (version == "3.0.0") ./print-statements.patch;
 
+  setupHook = ./setup-hook.sh;
+
   meta = with stdenv.lib; {
     homepage = http://scons.org/;
     description = "An improved, cross-platform substitute for Make";
diff --git a/pkgs/development/tools/build-managers/scons/setup-hook.sh b/pkgs/development/tools/build-managers/scons/setup-hook.sh
new file mode 100644
index 000000000000..55159aa5a93a
--- /dev/null
+++ b/pkgs/development/tools/build-managers/scons/setup-hook.sh
@@ -0,0 +1,84 @@
+sconsBuildPhase() {
+    runHook preBuild
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
+        buildFlags="${prefixKey:-prefix=}$prefix $buildFlags"
+    fi
+
+    local flagsArray=(
+      ${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
+      $sconsFlags ${sconsFlagsArray[@]}
+      $buildFlags ${buildFlagsArray[@]}
+    )
+
+    echoCmd 'build flags' "${flagsArray[@]}"
+    scons "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+sconsInstallPhase() {
+    runHook preInstall
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
+        installFlags="${prefixKey:-prefix=}$prefix $installFlags"
+    fi
+
+    local flagsArray=(
+        $sconsFlags ${sconsFlagsArray[@]}
+        $installFlags ${installFlagsArray[@]}
+        ${installTargets:-install}
+    )
+
+    echoCmd 'install flags' "${flagsArray[@]}"
+    scons "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+sconsCheckPhase() {
+    runHook preCheck
+
+    if [ -z "${checkTarget:-}" ]; then
+        if scons -n check >/dev/null 2>&1; then
+            checkTarget=check
+        elif scons -n test >/dev/null 2>&1; then
+            checkTarget=test
+        fi
+    fi
+
+    if [ -z "${checkTarget:-}" ]; then
+        echo "no check/test target found, doing nothing"
+    else
+        local flagsArray=(
+            ${enableParallelChecking:+-j${NIX_BUILD_CORES}}
+            $sconsFlags ${sconsFlagsArray[@]}
+            ${checkFlagsArray[@]}
+        )
+
+        echoCmd 'check flags' "${flagsArray[@]}"
+        scons "${flagsArray[@]}"
+    fi
+
+    runHook postCheck
+}
+
+if [ -z "$buildPhase" ]; then
+    buildPhase=sconsBuildPhase
+fi
+
+if [ -z "$dontUseSconsInstall" -a -z "$installPhase" ]; then
+    installPhase=sconsInstallPhase
+fi
+
+if [ -z "$checkPhase" ]; then
+    checkPhase=sconsCheckPhase
+fi
diff --git a/pkgs/development/tools/build-managers/waf/setup-hook.sh b/pkgs/development/tools/build-managers/waf/setup-hook.sh
new file mode 100644
index 000000000000..b8a448df8ef8
--- /dev/null
+++ b/pkgs/development/tools/build-managers/waf/setup-hook.sh
@@ -0,0 +1,62 @@
+wafConfigurePhase() {
+    runHook preConfigure
+
+    if ! [ -f ./waf ]; then
+        cp @waf@ waf
+    fi
+
+    if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
+        configureFlags="${prefixKey:---prefix=}$prefix $configureFlags"
+    fi
+
+    local flagsArray=(
+        $configureFlags ${configureFlagsArray[@]}
+        ${configureTargets:-configure}
+    )
+    echoCmd 'configure flags' "${flagsArray[@]}"
+    python waf "${flagsArray[@]}"
+
+    runHook postConfigure
+}
+
+wafBuildPhase () {
+    runHook preBuild
+
+    # set to empty if unset
+    : ${wafFlags=}
+
+    local flagsArray=(
+      ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}}
+      $wafFlags ${wafFlagsArray[@]}
+      $buildFlags ${buildFlagsArray[@]}
+      ${buildTargets:-build}
+    )
+
+    echoCmd 'build flags' "${flagsArray[@]}"
+    python waf "${flagsArray[@]}"
+
+    runHook postBuild
+}
+
+wafInstallPhase() {
+    runHook preInstall
+
+    if [ -n "$prefix" ]; then
+        mkdir -p "$prefix"
+    fi
+
+    local flagsArray=(
+        $wafFlags ${wafFlagsArray[@]}
+        $installFlags ${installFlagsArray[@]}
+	${installTargets:-install}
+    )
+
+    echoCmd 'install flags' "${flagsArray[@]}"
+    python waf "${flagsArray[@]}"
+
+    runHook postInstall
+}
+
+configurePhase=wafConfigurePhase
+buildPhase=wafBuildPhase
+installPhase=wafInstallPhase
diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix
index e22b8b25eaa4..dd6a413cebf2 100644
--- a/pkgs/development/tools/godot/default.nix
+++ b/pkgs/development/tools/godot/default.nix
@@ -33,10 +33,9 @@ in stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildPhase = ''
-    scons target=release_debug platform=x11 prefix=$out -j $NIX_BUILD_CORES \
-      ${lib.concatStringsSep " "
-          (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)}
+  sconsFlags = "target=release_debug platform=x11";
+  preConfigure = ''
+    sconsFlags+=" ${lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)}"
   '';
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix
index 9890107b2678..25f6a62fcb35 100644
--- a/pkgs/development/tools/java/cfr/default.nix
+++ b/pkgs/development/tools/java/cfr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "cfr-${version}";
-  version = "0.132";
+  version = "0_134";
 
   src = fetchurl {
     url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
-    sha256 = "1fpmd5v3x91lw6jc7x997ic2kklj449fndyg14zvgxawhdkic2z1";
+    sha256 = "185z1d03rgisn4p8qjilhlikdjb27xgh6vxkrlgmcm9c7kpms320";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/jid/default.nix b/pkgs/development/tools/jid/default.nix
new file mode 100644
index 000000000000..4833755b3ee3
--- /dev/null
+++ b/pkgs/development/tools/jid/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "jid-${version}";
+  version = "0.7.2";
+
+  goPackagePath = "github.com/simeji/jid";
+
+  src = fetchFromGitHub {
+    owner = "simeji";
+    repo = "jid";
+    rev = "${version}";
+    sha256 = "0p4srp85ilcafrn9d36rzpzg5k5jd7is93p68hamgxqyiiw6a8fi";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = {
+    description = "A command-line tool to incrementally drill down JSON";
+    homepage = https://github.com/simeji/jid;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ stesie ];
+  };
+}
diff --git a/pkgs/development/tools/jid/deps.nix b/pkgs/development/tools/jid/deps.nix
new file mode 100644
index 000000000000..a027902d2df2
--- /dev/null
+++ b/pkgs/development/tools/jid/deps.nix
@@ -0,0 +1,57 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/bitly/go-simplejson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/bitly/go-simplejson";
+      rev = "9db4a59bd4d803ae0c173a7d8a538e056cd59d57";
+      sha256 = "0cbnjzjq55jnzk07zdk7nb96yzgpyawm1r6km3xignn8ih4bnn6g";
+    };
+  }
+  {
+    goPackagePath = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev = "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
+      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "c88d7e5f2e24de48a200a2655ac8a0910be9a0f7";
+      sha256 = "14prmzjlv9z31n6caaaq1kwi4p0mp3x4pv5r7d0575lcampa41jw";
+    };
+  }
+  {
+    goPackagePath = "github.com/nsf/termbox-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nsf/termbox-go";
+      rev = "60ab7e3d12ed91bc1b2486559c4b3a6b62297577";
+      sha256 = "040064fh7wzdmv8flw6svi007hiqs1cjk1a3k3gpg7gii3npifsl";
+    };
+  }
+  {
+    goPackagePath = "github.com/nwidger/jsoncolor";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nwidger/jsoncolor";
+      rev = "75a6de4340e59be95f0884b9cebdda246e0fdf40";
+      sha256 = "0aiv42xijrqgrxfx6pfyrndpwqv8i1qwsk190jdczyjxlnki2nki";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "059132a15dd08d6704c67711dae0cf35ab991756";
+      sha256 = "0bxkbh2rq40kdk8i05am5np77cnskx3571v2k300j5mmj1rl1ijg";
+    };
+  }
+]
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index 87571f1fcbb7..231a2009491f 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "lazygit-${version}";
-  version = "0.4";
+  version = "0.5";
 
   goPackagePath = "github.com/jesseduffield/lazygit";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "jesseduffield";
     repo = "lazygit";
     rev = "v${version}";
-    sha256 = "0piljnwv778z7zc1pglkidiys1a3yv4d7z9wsrcj1nszlcn3ifyz";
+    sha256 = "0xgda2b5p26ya15kq83502f8vh18kl05hl40k0lsfqx3m7pnidn1";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/misc/creduce/default.nix b/pkgs/development/tools/misc/creduce/default.nix
index 5c6b8cfd9605..66f1fff41902 100644
--- a/pkgs/development/tools/misc/creduce/default.nix
+++ b/pkgs/development/tools/misc/creduce/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   # On Linux, c-reduce's preferred way to reason about
   # the cpu architecture/topology is to use 'lscpu',
   # so let's make sure it knows where to find it:
-  patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+  postPatch = stdenv.lib.optionalString stdenv.isLinux ''
     substituteInPlace creduce/creduce_utils.pm --replace \
       lscpu ${utillinux}/bin/lscpu
   '';
diff --git a/pkgs/development/tools/misc/objconv/default.nix b/pkgs/development/tools/misc/objconv/default.nix
index c4265ba95b08..acd25a12f81b 100644
--- a/pkgs/development/tools/misc/objconv/default.nix
+++ b/pkgs/development/tools/misc/objconv/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "objconv-${version}";
-  version = "2.48";
+  version = "2.51";
 
   src = fetchurl {
     # Versioned archive of objconv sources maintained by orivej.
     url = "https://archive.org/download/objconv/${name}.zip";
-    sha256 = "1y4bmy99dfhyqykkib50fiwsha2a62s9ya1qsv5mwj21w1l0snj7";
+    sha256 = "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/tools/misc/pkgconf/default.nix b/pkgs/development/tools/misc/pkgconf/default.nix
new file mode 100644
index 000000000000..120b824a773f
--- /dev/null
+++ b/pkgs/development/tools/misc/pkgconf/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "pkgconf-1.5.4";
+
+  src = fetchurl {
+    url = "https://distfiles.dereferenced.org/pkgconf/${name}.tar.xz";
+    sha256 = "0r26qmij9lxpz183na3dxj6lamcma94cjhasy19fya44w2j68n4w";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Package compiler and linker metadata toolkit";
+    homepage = https://git.dereferenced.org/pkgconf/pkgconf;
+    platforms = platforms.all;
+    license = licenses.isc;
+    maintainers = with maintainers; [ zaninime ];
+  };
+}
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index b041efefac77..23aeceb41a75 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  version = "1.1.6";
+  version = "1.1.7";
   name = "ocaml${ocaml.version}-ocp-index-${version}";
 
   src = fetchFromGitHub {
     owner = "OCamlPro";
     repo = "ocp-index";
     rev = version;
-    sha256 = "0p367aphz9w71qbm3y47qwhgqmyai28l96i1ifb6kg7awph5qmj3";
+    sha256 = "0i50y033y78wcfgz3b81d34p98azahl94w4b63ac0zyczlwlhvkf";
   };
 
   buildInputs = [ ocaml findlib dune ocp-build cmdliner re ];
diff --git a/pkgs/development/tools/parsing/hammer/default.nix b/pkgs/development/tools/parsing/hammer/default.nix
index 86c1f82678ae..bf5a2374fdef 100644
--- a/pkgs/development/tools/parsing/hammer/default.nix
+++ b/pkgs/development/tools/parsing/hammer/default.nix
@@ -12,8 +12,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib python scons ];
-  buildPhase = "scons prefix=$out";
-  installPhase = "scons prefix=$out install";
 
   meta = with stdenv.lib; {
     description = "A bit-oriented parser combinator library";
@@ -28,5 +26,5 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/UpstandingHackers/hammer;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    };
+  };
 }
diff --git a/pkgs/development/tools/toluapp/default.nix b/pkgs/development/tools/toluapp/default.nix
index 64a2f4346c79..1214058698e2 100644
--- a/pkgs/development/tools/toluapp/default.nix
+++ b/pkgs/development/tools/toluapp/default.nix
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0zd55bc8smmgk9j4cf0jpibb03lgsvl0knpwhplxbv93mcdnw7s0";
   };
 
-  buildInputs = [ lua scons ];
+  nativeBuildInputs = [ scons ];
+  buildInputs = [ lua ];
 
   patches = [ ./environ-and-linux-is-kinda-posix.patch ];
 
@@ -20,10 +21,6 @@ stdenv.mkDerivation rec {
       --replace /usr/local $out
   '';
 
-  buildPhase = ''scons'';
-
-  installPhase = ''scons install'';
-
   meta = with stdenv.lib; {
     description = "A tool to integrate C/Cpp code with Lua";
     homepage = http://www.codenix.com/~tolua/;
diff --git a/pkgs/development/web/now-cli/default.nix b/pkgs/development/web/now-cli/default.nix
index 0af669ff0699..47be5ff4250e 100644
--- a/pkgs/development/web/now-cli/default.nix
+++ b/pkgs/development/web/now-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchurl }:
 stdenv.mkDerivation rec {
   name = "now-cli-${version}";
-  version = "11.5.2";
+  version = "12.1.3";
 
   # TODO: switch to building from source, if possible
   src = fetchurl {
     url = "https://github.com/zeit/now-cli/releases/download/${version}/now-linux.gz";
-    sha256 = "1aavhslff2v5ap11s3xxrmdgs4n9yyp74sj3kbw6kwxd4cq1cfxz";
+    sha256 = "0jg0x227g0x2fby7mnhfyrfyja59003isg7wyh2vqcfshh5hsaq0";
   };
 
   sourceRoot = ".";