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/libraries/libgpg-error/default.nix1
-rw-r--r--pkgs/development/libraries/spdk/default.nix10
-rw-r--r--pkgs/development/libraries/spdk/spdk-dpdk-meson.patch17
-rw-r--r--pkgs/development/python-modules/aioamqp/default.nix42
-rw-r--r--pkgs/development/python-modules/aiocontextvars/default.nix48
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix47
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix36
-rw-r--r--pkgs/development/python-modules/aiounittest/default.nix36
-rw-r--r--pkgs/development/python-modules/databases/default.nix49
-rw-r--r--pkgs/development/python-modules/diskcache/default.nix26
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix36
-rw-r--r--pkgs/development/python-modules/fastapi/setup.py.patch13
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix26
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix28
-rw-r--r--pkgs/development/python-modules/httpx/default.nix68
-rw-r--r--pkgs/development/python-modules/imagecodecs-lite/default.nix19
-rw-r--r--pkgs/development/python-modules/orm/default.nix43
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix35
-rw-r--r--pkgs/development/python-modules/pyrabbit2/default.nix26
-rw-r--r--pkgs/development/python-modules/python-multipart/default.nix41
-rw-r--r--pkgs/development/python-modules/starlette/default.nix16
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix31
-rw-r--r--pkgs/development/python-modules/toggl-cli/default.nix5
-rw-r--r--pkgs/development/python-modules/trezor/default.nix4
-rw-r--r--pkgs/development/python-modules/typesystem/default.nix44
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix11
-rw-r--r--pkgs/development/tools/misc/openocd/default.nix11
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix12
-rw-r--r--pkgs/development/tools/misc/texinfo/cross-tools-flags.patch12
29 files changed, 698 insertions, 95 deletions
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 69c236d7220..c02bc7f0ed3 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation (rec {
     sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
     ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
+    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
   '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
     ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
diff --git a/pkgs/development/libraries/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
index a18edc0a6df..e70980afac6 100644
--- a/pkgs/development/libraries/spdk/default.nix
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, fetchFromGitHub, python, cunit, dpdk, libaio, libuuid, numactl, openssl }:
+{ stdenv, fetchFromGitHub, python, cunit, dpdk, libaio, libbsd, libuuid, numactl, openssl }:
 
 stdenv.mkDerivation rec {
   pname = "spdk";
-  version = "19.04";
+  version = "19.10";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "10mzal1hspnh26ws5d7sc54gyjfzkf6amr0gkd7b368ng2a9z8s6";
+    sha256 = "16v2vswn3rnnj7ak5w5rsak6r8f9b85gyhyll4ac1k4xpyj488hj";
   };
 
+  patches = [ ./spdk-dpdk-meson.patch ];
+
   nativeBuildInputs = [ python ];
 
-  buildInputs = [ cunit dpdk libaio libuuid numactl openssl ];
+  buildInputs = [ cunit dpdk libaio libbsd libuuid numactl openssl ];
 
   postPatch = ''
     patchShebangs .
diff --git a/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch b/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch
new file mode 100644
index 00000000000..9cc6d89ce50
--- /dev/null
+++ b/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch
@@ -0,0 +1,17 @@
+1. dpdk built with meson generates rte_build_config.h rather than rte_config.h.
+2. dpdk configured with libbsd requires that dependents link with libbsd.
+
+--- a/lib/env_dpdk/env.mk
++++ b/lib/env_dpdk/env.mk
+@@ -140,6 +140,9 @@ endif
+ 
+-ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_config.h))
+-ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_config.h))
++ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_build_config.h))
++ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_build_config.h))
+ ENV_LINKER_ARGS += -lnuma
+ endif
++ifneq (,$(shell grep -e "define RTE_USE_LIBBSD 1" $(DPDK_INC_DIR)/rte_build_config.h))
++ENV_LINKER_ARGS += -lbsd
++endif
+ endif
diff --git a/pkgs/development/python-modules/aioamqp/default.nix b/pkgs/development/python-modules/aioamqp/default.nix
index 17abad630a5..8db47220543 100644
--- a/pkgs/development/python-modules/aioamqp/default.nix
+++ b/pkgs/development/python-modules/aioamqp/default.nix
@@ -1,20 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder,
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pamqp
+, pytest
+, asynctest
+, pyrabbit2
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "aioamqp";
   version = "0.14.0";
+  disabled = isPy27;
 
-  meta = {
-    homepage = https://github.com/polyconseil/aioamqp;
-    description = "AMQP implementation using asyncio";
-    license = lib.licenses.bsd3;
+  src = fetchFromGitHub {
+    owner = "Polyconseil";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "1gpfsrc2vi6w33c9zsycd2qn589pr7a222rb41r85m915283zy48";
   };
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "eef5c23a7fedee079d8326406f5c7a5725dfe36c359373da3499fffa16f79915";
-  };
+  propagatedBuildInputs = [
+    pamqp
+  ];
+
+  checkInputs = [
+    pytest
+    asynctest
+    pyrabbit2
+  ];
 
-  disabled = pythonOlder "3.3";
+  # tests assume rabbitmq server running
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://github.com/polyconseil/aioamqp;
+    description = "AMQP implementation using asyncio";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
 }
diff --git a/pkgs/development/python-modules/aiocontextvars/default.nix b/pkgs/development/python-modules/aiocontextvars/default.nix
new file mode 100644
index 00000000000..38fdf14164e
--- /dev/null
+++ b/pkgs/development/python-modules/aiocontextvars/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestrunner
+, pytest
+, pytest-asyncio
+, contextvars
+, sqlalchemy
+, isPy27
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiocontextvars";
+  version = "0.2.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "fantix";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0a2gmrm9csiknc8n3si67sgzffkydplh9d7ga1k87ygk2aj22mmk";
+  };
+
+  buildInputs = [
+    pytestrunner
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-asyncio
+  ];
+
+  propagatedBuildInputs = [
+    sqlalchemy
+  ] ++ lib.optionals (pythonOlder "3.7") [ contextvars ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Asyncio support for PEP-567 contextvars backport";
+    homepage = https://github.com/fantix/aiocontextvars;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
new file mode 100644
index 00000000000..891e9f216ce
--- /dev/null
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pymysql
+, pytest
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "aiomysql";
+  version = "0.0.20";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mxih81zc2k64briirpp5wz4f72l8v05avfyfibaq9fr6lcbih9b";
+  };
+
+  propagatedBuildInputs = [
+    pymysql
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "PyMySQL>=0.9,<=0.9.2" "PyMySQL"
+  '';
+
+  checkPhase = ''
+    pytest
+  '';
+
+  # tests require mysql database
+  doCheck = false;
+
+  meta = with lib; {
+    description = "MySQL driver for asyncio";
+    homepage = https://github.com/aio-libs/aiomysql;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
new file mode 100644
index 00000000000..1032485e980
--- /dev/null
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, aiounittest
+, isPy27
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "aiosqlite";
+  version = "0.11.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jreese";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pmkp4iy738yv2sl08kvhd0ma6wjqbmfnwid72gvg4zqsr1hnn0z";
+  };
+
+  buildInputs = [
+    setuptools
+  ];
+
+  checkInputs = [
+    aiounittest
+  ];
+
+  meta = with lib; {
+    description = "Asyncio bridge to the standard sqlite3 module";
+    homepage = https://github.com/jreese/aiosqlite;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiounittest/default.nix b/pkgs/development/python-modules/aiounittest/default.nix
new file mode 100644
index 00000000000..743600a0d3b
--- /dev/null
+++ b/pkgs/development/python-modules/aiounittest/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, coverage
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "aiounittest";
+  version = "1.3.1";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "kwarunek";
+    repo = pname;
+    rev = version;
+    sha256 = "0mlic2q49cb0vv62mixy4i4x8c91qb6jlji7khiamcxcg676nasl";
+  };
+
+  checkInputs = [
+    nose
+    coverage
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    description = "Test asyncio code more easily";
+    homepage = https://github.com/kwarunek/aiounittest;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/databases/default.nix b/pkgs/development/python-modules/databases/default.nix
new file mode 100644
index 00000000000..e4129ed9bbf
--- /dev/null
+++ b/pkgs/development/python-modules/databases/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, sqlalchemy
+, aiocontextvars
+, isPy27
+, pytest
+, asyncpg
+, aiomysql
+, aiosqlite
+}:
+
+buildPythonPackage rec {
+  pname = "databases";
+  version = "0.2.6";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "0cdb4vln4zdmqbbcj7711b81b2l64jg1miihqcg8gpi35v404h2q";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    aiocontextvars
+  ];
+
+  checkInputs = [
+    pytest
+    asyncpg
+    aiomysql
+    aiosqlite
+  ];
+
+  # big chunk to tests depend on existing posgresql and mysql databases
+  # some tests are better than no tests
+  checkPhase = ''
+    pytest --ignore=tests/test_integration.py --ignore=tests/test_databases.py
+  '';
+
+  meta = with lib; {
+    description = "Async database support for Python";
+    homepage = https://github.com/encode/databases;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/diskcache/default.nix b/pkgs/development/python-modules/diskcache/default.nix
index 6aec01ed738..a420fc037bb 100644
--- a/pkgs/development/python-modules/diskcache/default.nix
+++ b/pkgs/development/python-modules/diskcache/default.nix
@@ -1,22 +1,36 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, tox
+, fetchFromGitHub
+, pytest
+, pytestcov
+, pytest_xdist
+, pytest-django
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "diskcache";
   version = "4.1.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "bcee5a59f9c264e2809e58d01be6569a3bbb1e36a1e0fb83f7ef9b2075f95ce0";
+  src = fetchFromGitHub {
+    owner = "grantjenks";
+    repo = "python-diskcache";
+    rev = "v${version}";
+    sha256 = "0xy2vpk4hixb4gg871d9sx9wxdz8pi0pmnfdwg4bf8jqfjg022w8";
   };
 
   checkInputs = [
-    tox
+    pytest
+    pytestcov
+    pytest_xdist
+    pytest-django
+    mock
   ];
 
+  checkPhase = ''
+    pytest
+  '';
+
   meta = with lib; {
     description = "Disk and file backed persistent cache";
     homepage = "http://www.grantjenks.com/docs/diskcache/";
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index a04e54c0d00..75edf5dc424 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -1,22 +1,28 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , uvicorn
 , starlette
 , pydantic
-, python
 , isPy3k
-, which
+, pytest
+, pytestcov
+, pyjwt
+, passlib
+, aiosqlite
 }:
 
 buildPythonPackage rec {
   pname = "fastapi";
   version = "0.45.0";
+  format = "flit";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "44712863ca3899eb812a6869a2efe02d6be6ae972968c76a43d82ec472788f17";
+  src = fetchFromGitHub {
+    owner = "tiangolo";
+    repo = "fastapi";
+    rev = version;
+    sha256 = "1qwh382ny6qa3zi64micdq4j7dc64zv4rfd8g91j0digd4rhs6i1";
   };
 
   propagatedBuildInputs = [
@@ -25,10 +31,24 @@ buildPythonPackage rec {
     pydantic
   ];
 
-  patches = [ ./setup.py.patch ];
+  checkInputs = [
+    pytest
+    pytestcov
+    pyjwt
+    passlib
+    aiosqlite
+  ];
+
+  # starlette pinning kept in place due to 0.12.9 being a hard
+  # dependency luckily fastapi is currently the only dependent on
+  # starlette. Please remove pinning when possible
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "pydantic >=0.32.2,<=0.32.2" "pydantic"
+  '';
 
   checkPhase = ''
-    ${python.interpreter} -c "from fastapi import FastAPI; app = FastAPI()"
+    pytest --ignore=tests/test_default_response_class.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fastapi/setup.py.patch b/pkgs/development/python-modules/fastapi/setup.py.patch
deleted file mode 100644
index 43661343d74..00000000000
--- a/pkgs/development/python-modules/fastapi/setup.py.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index ccc3d2b..77ce446 100644
---- a/setup.py
-+++ b/setup.py
-@@ -10,7 +10,7 @@ package_data = \
- {'': ['*']}
- 
- install_requires = \
--['starlette >=0.11.1,<=0.12.0', 'pydantic >=0.30,<=0.30.0']
-+['starlette >=0.11.1', 'pydantic >=0.30']
- 
- extras_require = \
- {'all': ['requests',
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 1be03cd0d2a..7e0ed8b9712 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -1,26 +1,34 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
   version = "0.6.2";
-
   disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ffd7cd5ac32f36698097c3d78c2c433d4c12f7e4bce3a3a4036fd3491188046d";
+  src = fetchFromGitHub {
+    owner = "intake";
+    repo = "filesystem_spec";
+    rev = version;
+    sha256 = "1y3d6xw14rcldz9779ir6mjaff4rk82ch6ahn4y9mya0qglpc31i";
   };
 
-  # no tests
-  doCheck = false;
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with lib; {
-    description = "A specification that python filesystems should adhere to.";
-    homepage = "https://github.com/intake/filesystem_spec";
+    description = "A specification that python filesystems should adhere to";
+    homepage = https://github.com/intake/filesystem_spec;
     license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
new file mode 100644
index 00000000000..a276bd33b59
--- /dev/null
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "hstspreload";
+  version = "2019.12.25";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "sethmlarson";
+    repo = pname;
+    rev = version;
+    sha256 = "1aa7jccwldxw3s0z668qqb0i0plsark1q3jvkmqkyp645w5bfilk";
+  };
+
+  # tests require network connection
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Chromium HSTS Preload list as a Python package and updated daily";
+    homepage = https://github.com/sethmlarson/hstspreload;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
new file mode 100644
index 00000000000..04a0592d750
--- /dev/null
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, certifi
+, hstspreload
+, chardet
+, h11
+, h2
+, idna
+, rfc3986
+, sniffio
+, isPy27
+, pytest
+, pytestcov
+, trustme
+, uvicorn
+, trio
+, brotli
+}:
+
+buildPythonPackage rec {
+  pname = "httpx";
+  version = "0.9.5";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "140z2j7b5hlcxvfb433hqv5b8irqa88hpq33lzr9m992djbhj2hb";
+  };
+
+  propagatedBuildInputs = [
+    certifi
+    hstspreload
+    chardet
+    h11
+    h2
+    idna
+    rfc3986
+    sniffio
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+    trustme
+    uvicorn
+    trio
+    brotli
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+          --replace "h11==0.8.*" "h11"
+  '';
+
+  checkPhase = ''
+    PYTHONPATH=.:$PYTHONPATH pytest
+  '';
+
+  meta = with lib; {
+    description = "The next generation HTTP client";
+    homepage = https://github.com/encode/httpx;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/imagecodecs-lite/default.nix b/pkgs/development/python-modules/imagecodecs-lite/default.nix
index c7a6f59091b..861a0ed0db3 100644
--- a/pkgs/development/python-modules/imagecodecs-lite/default.nix
+++ b/pkgs/development/python-modules/imagecodecs-lite/default.nix
@@ -10,11 +10,24 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "95d18aa13ceb1b18a6109433b42d054e13b9a295cba96c08ab719f864f589d68";
+    sha256 = "0s4xb17qd7vimc46rafbjnibj4sf0lnv8cwl22k1h6zb7jhqmlcm";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy cython ];
+  nativeBuildInputs = [
+    cython
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with lib; {
     description = "Block-oriented, in-memory buffer transformation, compression, and decompression functions";
diff --git a/pkgs/development/python-modules/orm/default.nix b/pkgs/development/python-modules/orm/default.nix
new file mode 100644
index 00000000000..c2f6bc4fc57
--- /dev/null
+++ b/pkgs/development/python-modules/orm/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, databases
+, typesystem
+, aiosqlite
+, pytest
+, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "orm";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = "orm";
+    rev = version;
+    sha256 = "1g70cr0559iyqfzidwh6n2qq6d4dcnrr4sg0jkn1s4qzka828mj7";
+  };
+
+  propagatedBuildInputs = [
+    databases
+    typesystem
+  ];
+
+  checkInputs = [
+    aiosqlite
+    pytest
+    pytestcov
+  ];
+
+  checkPhase = ''
+    PYTHONPATH=$PYTHONPATH:. pytest
+  '';
+
+  meta = with lib; {
+    description = "An async ORM";
+    homepage = https://github.com/encode/orm;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 23b6dd3432e..088c6636fdc 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,21 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , ujson
 , email_validator
 , typing-extensions
 , python
 , isPy3k
+, pytest
+, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.2";
+  version = "1.3";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "da10b034750addbd95a328654d20364c479f4e2e26e0f72933204d61cbc8fa78";
+  src = fetchFromGitHub {
+    owner = "samuelcolvin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0s85nzlsyj97j54zsgv569hkzv617z0vqsifsxkkyiimgbvnx7g8";
   };
 
   propagatedBuildInputs = [
@@ -24,22 +28,13 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -c """
-from datetime import datetime
-from typing import List
-from pydantic import BaseModel
-
-class User(BaseModel):
-    id: int
-    name = 'John Doe'
-    signup_ts: datetime = None
-    friends: List[int] = []
+  checkInputs = [
+    pytest
+    pytestcov
+  ];
 
-external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
-user = User(**external_data)
-assert user.id is "123"
-"""
+  checkPhase = ''
+    pytest
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyrabbit2/default.nix b/pkgs/development/python-modules/pyrabbit2/default.nix
new file mode 100644
index 00000000000..36182e9986b
--- /dev/null
+++ b/pkgs/development/python-modules/pyrabbit2/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyrabbit2";
+  version = "1.0.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d27160cb35c096f0072df57307233d01b117a451236e136604a8e51be6f106c0";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  meta = with lib; {
+    description = "A Pythonic interface to the RabbitMQ Management HTTP API";
+    homepage = https://github.com/deslum/pyrabbit2;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix
new file mode 100644
index 00000000000..e3e75d88604
--- /dev/null
+++ b/pkgs/development/python-modules/python-multipart/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, mock
+, pyyaml
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "python-multipart";
+  version = "0.0.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43";
+  };
+
+  checkInputs = [
+    pytest
+    pytestcov
+    mock
+    pyyaml
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "A streaming multipart parser for Python";
+    homepage = https://github.com/andrew-d/python-multipart;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index b0e99f796e7..a2170db1bd4 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -9,11 +9,13 @@
 , pyyaml
 , requests
 , ujson
+, python-multipart
 , pytest
-, python
 , uvicorn
 , isPy27
 , darwin
+, databases
+, aiosqlite
 }:
 
 buildPythonPackage rec {
@@ -35,13 +37,17 @@ buildPythonPackage rec {
     requests
     ujson
     uvicorn
+    python-multipart
+    databases
   ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices ];
 
+  checkInputs = [
+    pytest
+    aiosqlite
+  ];
+
   checkPhase = ''
-    ${python.interpreter} -c """
-from starlette.applications import Starlette
-app = Starlette(debug=True)
-"""
+    pytest --ignore=tests/test_graphql.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 1f0e89d03ac..fbf36b4ef97 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -1,7 +1,14 @@
-{ lib, fetchPypi, buildPythonPackage, isPy27, isPy3k
-, numpy, enum34, futures, pathlib
-, pytest
+{ lib
+, fetchPypi
+, buildPythonPackage
+, isPy27
+, isPy3k
+, numpy
 , imagecodecs-lite
+, enum34
+, futures
+, pathlib
+, pytest
 }:
 
 buildPythonPackage rec {
@@ -18,14 +25,24 @@ buildPythonPackage rec {
   # Missing dependencies: imagecodecs, czifile, cmapfile, oiffile, lfdfiles
   # and test data missing from PyPI tarball
   doCheck = false;
-  checkInputs = [ pytest ];
+
+  checkInputs = [
+    pytest
+  ];
+
   checkPhase = ''
     pytest
   '';
 
-  propagatedBuildInputs = [ numpy ]
-    ++ lib.optionals isPy27 [ futures enum34 pathlib ]
-    ++ lib.optionals isPy3k [ imagecodecs-lite ];
+  propagatedBuildInputs = [
+    numpy
+  ] ++ lib.optionals isPy3k [
+    imagecodecs-lite
+  ] ++ lib.optionals isPy27 [
+    futures
+    enum34
+    pathlib
+  ];
 
   meta = with lib; {
     description = "Read and write image data from and to TIFF files.";
diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index 2c43ebf2c7e..6834876d8f8 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,5 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi, twine, pbr, click, click-completion, validate-email,
-pendulum, ptable, requests, inquirer, pythonOlder, pytest, pytestcov, pytest-mock, faker, factory_boy }:
+pendulum, ptable, requests, inquirer, pythonOlder, pytest, pytestcov, pytest-mock, faker, factory_boy,
+setuptools }:
 
 
 buildPythonPackage rec {
@@ -16,6 +17,7 @@ buildPythonPackage rec {
 
   postPatch = ''
    substituteInPlace requirements.txt \
+     --replace "pendulum==2.0.4" "pendulum>=2.0.4" \
      --replace "click-completion==0.5.0" "click-completion>=0.5.0" \
      --replace "pbr==5.1.2" "pbr>=5.1.2" \
      --replace "inquirer==2.5.1" "inquirer>=2.5.1"
@@ -37,6 +39,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    setuptools
     click
     click-completion
     validate-email
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index cdf29cb565d..2d40ad971db 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.11.5";
+  version = "0.11.6";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd8aafd70a281daa644c4a3fb021ffac20b7a88e86226ecc8bb3e78e1734a184";
+    sha256 = "1i73j812i0dgjw9n106pipc6qksd9cgs59d0as0b4j5iyl0087hh";
   };
 
   propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp shamir-mnemonic trezor-udev-rules ];
diff --git a/pkgs/development/python-modules/typesystem/default.nix b/pkgs/development/python-modules/typesystem/default.nix
new file mode 100644
index 00000000000..8a66d6cbcc9
--- /dev/null
+++ b/pkgs/development/python-modules/typesystem/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytest
+, pytestcov
+, jinja2
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "typesystem";
+  version = "0.2.4";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "1k0jwcky17zwaz2vx4x2zbsnp270g4mgn7kx5bpl8jgx76qmsnba";
+  };
+
+  propagatedBuildInputs = [
+    jinja2
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+  ];
+
+  # for some reason jinja2 not picking up forms directory (1% of tests)
+  checkPhase = ''
+    pytest --ignore=tests/test_forms.py
+  '';
+
+  meta = with lib; {
+    description = "A type system library for Python";
+    homepage = https://github.com/encode/typesystem;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 49d7287087f..e4d4994a781 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -10,11 +10,12 @@
 let
   # See https://mesonbuild.com/Reference-tables.html#cpu-families
   cpuFamilies = {
-    aarch64 = "aarch64";
-    armv6l  = "arm";
-    armv7l  = "arm";
-    i686    = "x86";
-    x86_64  = "x86_64";
+    aarch64  = "aarch64";
+    armv5tel = "arm";
+    armv6l   = "arm";
+    armv7l   = "arm";
+    i686     = "x86";
+    x86_64   = "x86_64";
   };
 in
 python3Packages.buildPythonApplication rec {
diff --git a/pkgs/development/tools/misc/openocd/default.nix b/pkgs/development/tools/misc/openocd/default.nix
index eea27b3e51f..854da880118 100644
--- a/pkgs/development/tools/misc/openocd/default.nix
+++ b/pkgs/development/tools/misc/openocd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, libftdi1, libusb1, pkgconfig, hidapi }:
+{ stdenv, lib, fetchurl, fetchpatch, libftdi1, libusb1, pkgconfig, hidapi }:
 
 stdenv.mkDerivation rec {
   pname = "openocd";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "1bhn2c85rdz4gf23358kg050xlzh7yxbbwmqp24c0akmh3bff4kk";
   };
 
+  patches = [
+    # Fix FTDI channel configuration for SheevaPlug
+    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837989
+    (fetchpatch {
+      url = "https://salsa.debian.org/electronics-team/openocd/raw/9a94335daa332a37a51920f87afbad4d36fad2d5/debian/patches/fix-sheeva.patch";
+      sha256 = "01x021fagwvgxdpzk7psap7ryqiya4m4mi4nqr27asbmb3q46g5r";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libftdi1 libusb1 hidapi ];
 
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 7741f2d4ffb..40dafe27da2 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -6,6 +6,10 @@
 , interactive ? false, ncurses, procps
 }:
 
+let
+  crossBuildTools = interactive && stdenv.hostPlatform != stdenv.buildPlatform;
+in
+
 with stdenv.lib;
 
 stdenv.mkDerivation {
@@ -17,7 +21,13 @@ stdenv.mkDerivation {
     inherit sha256;
   };
 
-  patches = optional (version == "6.5") ./perl.patch;
+  patches = optional (version == "6.5") ./perl.patch
+    ++ optional crossBuildTools ./cross-tools-flags.patch;
+
+  # ncurses is required to build `makedoc'
+  # this feature is introduced by the ./cross-tools-flags.patch
+  NATIVE_TOOLS_CFLAGS = if crossBuildTools then "-I${getDev buildPackages.ncurses}/include" else null;
+  NATIVE_TOOLS_LDFLAGS = if crossBuildTools then "-L${getLib buildPackages.ncurses}/lib" else null;
 
   # We need a native compiler to build perl XS extensions
   # when cross-compiling.
diff --git a/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch b/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
new file mode 100644
index 00000000000..f0e4230d7ec
--- /dev/null
+++ b/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
@@ -0,0 +1,12 @@
+diff -ur texinfo-6.5/configure texinfo-6.5-patched/configure
+--- texinfo-6.5/configure	2017-09-13 03:50:18.000000000 +0900
++++ texinfo-6.5-patched/configure	2019-12-28 17:39:06.692818866 +0900
+@@ -23281,7 +23281,7 @@
+   # env -i gives this build host configure a clean environment;
+   # consequently, we have to re-initialize $PATH.
+   env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
+-      PATH="$PATH" \
++      PATH="$PATH" CFLAGS="$NATIVE_TOOLS_CFLAGS" LDFLAGS="$NATIVE_TOOLS_LDFLAGS" \
+       tools_only=1 \
+     ${confdir}/configure --build=${build} --host=${build} \
+                          --disable-rpath --disable-nls