diff --git a/nixos/modules/services/monitoring/sysstat.nix b/nixos/modules/services/monitoring/sysstat.nix index d668faa53cc3..ca2cff827232 100644 --- a/nixos/modules/services/monitoring/sysstat.nix +++ b/nixos/modules/services/monitoring/sysstat.nix @@ -5,15 +5,10 @@ let in { options = { services.sysstat = { - enable = mkOption { - type = types.bool; - default = false; - description = '' - Whether to enable sar system activity collection. - ''; - }; + enable = mkEnableOption "sar system activity collection"; collect-frequency = mkOption { + type = types.str; default = "*:00/10"; description = '' OnCalendar specification for sysstat-collect @@ -21,6 +16,7 @@ in { }; collect-args = mkOption { + type = types.str; default = "1 1"; description = '' Arguments to pass sa1 when collecting statistics @@ -33,13 +29,13 @@ in { systemd.services.sysstat = { description = "Resets System Activity Logs"; wantedBy = [ "multi-user.target" ]; - preStart = "test -d /var/log/sa || mkdir -p /var/log/sa"; serviceConfig = { User = "root"; RemainAfterExit = true; Type = "oneshot"; ExecStart = "${pkgs.sysstat}/lib/sa/sa1 --boot"; + LogsDirectory = "sa"; }; }; diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix index 69c236d72209..c02bc7f0ed3e 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 a18edc0a6dff..e70980afac61 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 000000000000..9cc6d89ce50e --- /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 17abad630a53..8db472205434 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 = { + src = fetchFromGitHub { + owner = "Polyconseil"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "1gpfsrc2vi6w33c9zsycd2qn589pr7a222rb41r85m915283zy48"; + }; + + propagatedBuildInputs = [ + pamqp + ]; + + checkInputs = [ + pytest + asynctest + pyrabbit2 + ]; + + # tests assume rabbitmq server running + doCheck = false; + + meta = with lib; { homepage = https://github.com/polyconseil/aioamqp; description = "AMQP implementation using asyncio"; - license = lib.licenses.bsd3; + license = licenses.bsd3; + maintainers = [ maintainers.costrouc ]; }; - - src = fetchPypi { - inherit pname version; - sha256 = "eef5c23a7fedee079d8326406f5c7a5725dfe36c359373da3499fffa16f79915"; - }; - - disabled = pythonOlder "3.3"; } diff --git a/pkgs/development/python-modules/aiocontextvars/default.nix b/pkgs/development/python-modules/aiocontextvars/default.nix new file mode 100644 index 000000000000..38fdf14164eb --- /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 000000000000..891e9f216ce8 --- /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 000000000000..1032485e9801 --- /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 000000000000..743600a0d3b0 --- /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 000000000000..e4129ed9bbf3 --- /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 6aec01ed7388..a420fc037bbe 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 a04e54c0d009..75edf5dc424c 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 43661343d744..000000000000 --- 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 1be03cd0d2a1..7e0ed8b9712d 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 000000000000..a276bd33b592 --- /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 000000000000..04a0592d7506 --- /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 c7a6f59091ba..861a0ed0db3d 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 000000000000..c2f6bc4fc570 --- /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 23b6dd3432eb..088c6636fdca 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 ]; + checkInputs = [ + pytest + pytestcov + ]; + 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] = [] - -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" -""" + 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 000000000000..36182e9986be --- /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 000000000000..e3e75d886043 --- /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 b0e99f796e77..a2170db1bd48 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 1f0e89d03ace..fbf36b4ef97e 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 2c43ebf2c7e7..6834876d8f81 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 cdf29cb565d3..2d40ad971dbe 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 000000000000..8a66d6cbcc9f --- /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 49d7287087fd..e4d4994a7814 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 eea27b3e51ff..854da8801181 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 7741f2d4ffbc..40dafe27da2a 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 000000000000..f0e4230d7ec2 --- /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 diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix index 426be1f214a0..9229f4fbc93e 100644 --- a/pkgs/games/steam/chrootenv.nix +++ b/pkgs/games/steam/chrootenv.nix @@ -79,6 +79,7 @@ in buildFHSUserEnv rec { # Not formally in runtime but needed by some games at-spi2-atk + at-spi2-core # CrossCode gst_all_1.gstreamer gst_all_1.gst-plugins-ugly libdrm diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 01a84230dbb6..06a5c7c441cc 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -300,7 +300,7 @@ in { ubootSheevaplug = buildUBoot { defconfig = "sheevaplug_defconfig"; extraMeta.platforms = ["armv5tel-linux"]; - filesToInstall = ["u-boot.bin"]; + filesToInstall = ["u-boot.kwb"]; }; ubootSopine = buildUBoot { diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix index 104fccd6955b..414f276a2109 100644 --- a/pkgs/os-specific/linux/dpdk/default.nix +++ b/pkgs/os-specific/linux/dpdk/default.nix @@ -7,16 +7,15 @@ , shared ? false }: let - kver = kernel.modDirVersion or null; mod = kernel != null; in stdenv.mkDerivation rec { name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}"; - version = "19.08.2"; + version = "19.11"; src = fetchurl { url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; - sha256 = "141bqqy4w6nzs9z70x7yv94a4gmxjfal46pxry9bwdh3zi1jwnyd"; + sha256 = "1aqjn6bm9miv3v2rbqi1rh1c19wa8nip9fvnqaqpnrs3i2b36wa6"; }; nativeBuildInputs = [ @@ -44,13 +43,23 @@ in stdenv.mkDerivation rec { mesonFlags = [ "-Denable_docs=true" - "-Denable_kmods=${if kernel != null then "true" else "false"}" - ] - ++ lib.optionals (shared == false) [ - "-Ddefault_library=static" + "-Denable_kmods=${if mod then "true" else "false"}" ] + ++ lib.optional (!shared) "-Ddefault_library=static" ++ lib.optional stdenv.isx86_64 "-Dmachine=nehalem" - ++ lib.optional (kernel != null) "-Dkernel_dir=${kernel.dev}/lib/modules/${kernel.modDirVersion}"; + ++ lib.optional mod "-Dkernel_dir=${placeholder "kmod"}/lib/modules/${kernel.modDirVersion}"; + + # dpdk meson script does not support separate kernel source and installion + # dirs (except via destdir), so we temporarily link the former into the latter. + preConfigure = lib.optionalString mod '' + mkdir -p $kmod/lib/modules/${kernel.modDirVersion} + ln -sf ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \ + $kmod/lib/modules/${kernel.modDirVersion} + ''; + + postBuild = lib.optionalString mod '' + rm -f $kmod/lib/modules/${kernel.modDirVersion}/build + ''; outputs = [ "out" ] ++ lib.optional mod "kmod"; diff --git a/pkgs/os-specific/linux/odp-dpdk/default.nix b/pkgs/os-specific/linux/odp-dpdk/default.nix index 0bdc22da918d..66185de03a16 100644 --- a/pkgs/os-specific/linux/odp-dpdk/default.nix +++ b/pkgs/os-specific/linux/odp-dpdk/default.nix @@ -5,7 +5,7 @@ version = "18.11.5"; src = fetchurl { url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; - sha256 = "0000000000000000000000000000000000000000000000000000"; + sha256 = "1n6nfaj7703l19jcw540lm8avni48hj9q1rq4mfp8b8gd4zjprj0"; }; }); @@ -46,6 +46,8 @@ in stdenv.mkDerivation rec { # binaries will segfault otherwise dontStrip = true; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "Open Data Plane optimized for DPDK"; homepage = https://www.opendataplane.org; diff --git a/pkgs/os-specific/linux/pktgen/configure.patch b/pkgs/os-specific/linux/pktgen/configure.patch new file mode 100644 index 000000000000..b4933313a51a --- /dev/null +++ b/pkgs/os-specific/linux/pktgen/configure.patch @@ -0,0 +1,17 @@ +1. librte_process_info does not exist. +2. lua5.3 library is liblua. +3. app/meson.build uses undeclared drivers_install_subdir. +--- a/lib/common/meson.build ++++ b/lib/common/meson.build +@@ -34,1 +34,1 @@ +-libs = ['eal', 'kvargs', 'cmdline', 'process_info'] ++libs = ['eal', 'kvargs', 'cmdline'] +--- a/lib/lua/meson.build ++++ b/lib/lua/meson.build +@@ -31 +31 @@ endforeach +-ext_deps += cc.find_library('lua5.3', required: true) ++ext_deps += cc.find_library('lua', required: true) +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -0,0 +1,1 @@ ++option('drivers_install_subdir', type: 'string', value: '') diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix index fd57fa6e37ce..171e5d3b43ae 100644 --- a/pkgs/os-specific/linux/pktgen/default.nix +++ b/pkgs/os-specific/linux/pktgen/default.nix @@ -1,41 +1,40 @@ -{ stdenv, lib, fetchurl, pkgconfig -, dpdk, libpcap, lua5_3, numactl, utillinux +{ stdenv, lib, fetchurl, meson, ninja, pkgconfig +, dpdk, libbsd, libpcap, lua5_3, numactl, utillinux , gtk2, which, withGtk ? false }: stdenv.mkDerivation rec { pname = "pktgen"; - version = "3.7.2"; + version = "19.12.0"; src = fetchurl { url = "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/${pname}-${version}.tar.xz"; - sha256 = "03k7h4j2lsrh6b7477hgn87ljrjh2673ncffx9v261bx1ns54y7w"; + sha256 = "1clfviz1qa4hysslcg6i29vsxwl9f6j1y7zf9wwx9br3yq08x956"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ meson ninja pkgconfig ]; buildInputs = - [ dpdk libpcap lua5_3 numactl which ] + [ dpdk libbsd libpcap lua5_3 numactl which ] ++ stdenv.lib.optionals withGtk [gtk2]; - RTE_SDK = "${dpdk}/share/dpdk"; - RTE_TARGET = "x86_64-native-linuxapp-gcc"; + RTE_SDK = dpdk; GUI = stdenv.lib.optionalString withGtk "true"; NIX_CFLAGS_COMPILE = [ "-msse3" ]; - postPatch = let dpdkMajor = lib.versions.major dpdk.version; in '' + patches = [ ./configure.patch ]; + + postPatch = '' substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${utillinux}/bin/lscpu ''; - installPhase = '' - install -d $out/bin - install -m 0755 app/${RTE_TARGET}/pktgen $out/bin - install -m 0644 Pktgen.lua $out/bin + postInstall = '' + # meson installs unneeded files with conflicting generic names, such as + # include/cli.h and lib/liblua.so. + rm -rf $out/include $out/lib ''; - enableParallelBuilding = true; - meta = with stdenv.lib; { description = "Traffic generator powered by DPDK"; homepage = http://dpdk.org/; diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix index 0461c732e1a6..3b355c92226b 100644 --- a/pkgs/tools/filesystems/mtdutils/default.nix +++ b/pkgs/tools/filesystems/mtdutils/default.nix @@ -9,13 +9,16 @@ stdenv.mkDerivation rec { sha256 = "1lijl89l7hljx8xx70vrz9srd3h41v5gh4b0lvqnlv831yvyh5cd"; }; - nativeBuildInputs = [ autoreconfHook cmocka pkgconfig ]; + nativeBuildInputs = [ autoreconfHook pkgconfig ] ++ stdenv.lib.optional doCheck cmocka; buildInputs = [ acl libuuid lzo zlib zstd ]; - configureFlags = [ "--enable-unit-tests" "--enable-tests" ]; + configureFlags = [ + (stdenv.lib.enableFeature doCheck "unit-tests") + (stdenv.lib.enableFeature doCheck "tests") + ]; enableParallelBuilding = true; - doCheck = true; + doCheck = stdenv.hostPlatform == stdenv.buildPlatform; meta = { description = "Tools for MTD filesystems"; diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix index 3adf37c22182..db25ec9d366c 100644 --- a/pkgs/tools/misc/topgrade/default.nix +++ b/pkgs/tools/misc/topgrade/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "topgrade"; - version = "3.5.0"; + version = "3.6.0"; src = fetchFromGitHub { owner = "r-darwish"; repo = pname; rev = "v${version}"; - sha256 = "15w1qi38dsx573nadqpvarxx63xla53w775fwkdds2iyspaljsg6"; + sha256 = "1pr8bwwxp8zvn89ldsb0qy5asx59kpd7dsp7sjmgnbj2ddizl05n"; }; - cargoSha256 = "0xhrgs2rpkgjzgsipq5rb3fmqwvxrl2wi0fly1xaa6p304k1710m"; + cargoSha256 = "1f5s8nxl450vpfhvshiwvm49q6ph79vb40qqiz0a2i6jdrzhphq3"; meta = with stdenv.lib; { description = "Upgrade all the things"; diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index ce2936f96f3f..33ec396e5d22 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -57,7 +57,7 @@ common = propagatedBuildInputs = [ boehmgc ]; # Seems to be required when using std::atomic with 64-bit types - NIX_LDFLAGS = lib.optionalString (stdenv.hostPlatform.system == "armv6l-linux") "-latomic"; + NIX_LDFLAGS = lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux" || stdenv.hostPlatform.system == "armv6l-linux") "-latomic"; preConfigure = # Copy libboost_context so we don't get all of Boost in our closure. diff --git a/pkgs/tools/security/afl/README.md b/pkgs/tools/security/afl/README.md index 0b0d4e80fbca..180cad6bc4ca 100644 --- a/pkgs/tools/security/afl/README.md +++ b/pkgs/tools/security/afl/README.md @@ -4,12 +4,12 @@ Updating the QEMU patches When updating to the latest American Fuzzy Lop, make sure to check for any new patches to qemu for binary fuzzing support: -https://github.com/mirrorer/afl/tree/master/qemu_mode +https://github.com/google/AFL/tree/master/qemu_mode Be sure to check the build script and make sure it's also using the right QEMU version and options in `qemu.nix`: -https://github.com/mirrorer/afl/blob/master/qemu_mode/build_qemu_support.sh +https://github.com/google/AFL/blob/master/qemu_mode/build_qemu_support.sh `afl-config.h`, `afl-types.h`, and `afl-qemu-cpu-inl.h` are part of the afl source code, and copied from `config.h`, `types.h` and diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix index 05866792af68..df5e3728943e 100644 --- a/pkgs/tools/security/afl/default.nix +++ b/pkgs/tools/security/afl/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, callPackage, makeWrapper +{ stdenv, fetchFromGitHub, callPackage, makeWrapper , clang, llvm, which, libcgroup }: @@ -9,11 +9,13 @@ let else throw "afl: no support for ${stdenv.hostPlatform.system}!"; afl = stdenv.mkDerivation rec { pname = "afl"; - version = "2.52b"; + version = "2.56b"; - src = fetchurl { - url = "http://lcamtuf.coredump.cx/afl/releases/${pname}-${version}.tgz"; - sha256 = "0ig0ij4n1pwry5dw1hk4q88801jzzy2cric6y2gd6560j55lnqa3"; + src = fetchFromGitHub { + owner = "google"; + repo = pname; + rev = "v${version}"; + sha256 = "1q1g59gkm48aa4cg9h70jx4i2gapmypgp5rzs156b2avd95vwkn1"; }; enableParallelBuilding = true; diff --git a/pkgs/tools/security/afl/libdislocator.nix b/pkgs/tools/security/afl/libdislocator.nix index 415fa82f2ec6..953c59e435cb 100644 --- a/pkgs/tools/security/afl/libdislocator.nix +++ b/pkgs/tools/security/afl/libdislocator.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { pname = "libdislocator"; src = afl.src; - sourceRoot = "${afl.name}/libdislocator"; + sourceRoot = "${afl.src.name}/libdislocator"; makeFlags = [ "PREFIX=$(out)" ]; diff --git a/pkgs/tools/security/afl/qemu-patches/qemu-2.10.0-glibc-2.27.patch b/pkgs/tools/security/afl/qemu-patches/qemu-2.10.0-glibc-2.27.patch deleted file mode 100644 index 6cc663dc1fb9..000000000000 --- a/pkgs/tools/security/afl/qemu-patches/qemu-2.10.0-glibc-2.27.patch +++ /dev/null @@ -1,28 +0,0 @@ -A modified version of qemu commit 75e5b70e6b5dcc4f2219992d7cffa462aa406af0 -diff --git a/configure b/configure -index 9c8aa5a..99ccc17 100755 ---- a/configure -+++ b/configure -@@ -3855,7 +3855,7 @@ fi - # check if memfd is supported - memfd=no - cat > $TMPC << EOF --#include -+#include - - int main(void) - { -diff --git a/util/memfd.c b/util/memfd.c -index 4571d1a..412e94a 100644 ---- a/util/memfd.c -+++ b/util/memfd.c -@@ -31,9 +31,7 @@ - - #include "qemu/memfd.h" - --#ifdef CONFIG_MEMFD --#include --#elif defined CONFIG_LINUX -+#if defined CONFIG_LINUX && !defined CONFIG_MEMFD - #include - #include diff --git a/pkgs/tools/security/afl/qemu.nix b/pkgs/tools/security/afl/qemu.nix index d80d301351f4..479de4b41850 100644 --- a/pkgs/tools/security/afl/qemu.nix +++ b/pkgs/tools/security/afl/qemu.nix @@ -6,7 +6,6 @@ with stdenv.lib; let qemuName = "qemu-2.10.0"; - aflName = afl.name; cpuTarget = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux-user" else if stdenv.hostPlatform.system == "i686-linux" then "i386-linux-user" else throw "afl: no support for ${stdenv.hostPlatform.system}!"; @@ -25,12 +24,12 @@ stdenv.mkDerivation { sourceRoot = qemuName; postUnpack = '' - cp ${aflName}/types.h $sourceRoot/afl-types.h - substitute ${aflName}/config.h $sourceRoot/afl-config.h \ + cp ${afl.src.name}/types.h $sourceRoot/afl-types.h + substitute ${afl.src.name}/config.h $sourceRoot/afl-config.h \ --replace "types.h" "afl-types.h" - substitute ${aflName}/qemu_mode/patches/afl-qemu-cpu-inl.h $sourceRoot/afl-qemu-cpu-inl.h \ + substitute ${afl.src.name}/qemu_mode/patches/afl-qemu-cpu-inl.h $sourceRoot/afl-qemu-cpu-inl.h \ --replace "../../config.h" "afl-config.h" - substituteInPlace ${aflName}/qemu_mode/patches/cpu-exec.diff \ + substituteInPlace ${afl.src.name}/qemu_mode/patches/cpu-exec.diff \ --replace "../patches/afl-qemu-cpu-inl.h" "afl-qemu-cpu-inl.h" ''; @@ -46,12 +45,13 @@ stdenv.mkDerivation { patches = [ # patches extracted from afl source - "../${aflName}/qemu_mode/patches/cpu-exec.diff" - "../${aflName}/qemu_mode/patches/elfload.diff" - "../${aflName}/qemu_mode/patches/syscall.diff" + "../${afl.src.name}/qemu_mode/patches/cpu-exec.diff" + "../${afl.src.name}/qemu_mode/patches/elfload.diff" + "../${afl.src.name}/qemu_mode/patches/syscall.diff" + "../${afl.src.name}/qemu_mode/patches/configure.diff" + "../${afl.src.name}/qemu_mode/patches/memfd.diff" # nix-specific patches to make installation more well-behaved ./qemu-patches/no-etc-install.patch - ./qemu-patches/qemu-2.10.0-glibc-2.27.patch ]; configureFlags = diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index faa2b1695fcf..8b6274ed4f71 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -556,6 +556,8 @@ in { inherit (pkgs.llvmPackages) openmp libcxx libcxxabi; }; + databases = callPackage ../development/python-modules/databases { }; + datamodeldict = callPackage ../development/python-modules/datamodeldict { }; datasette = callPackage ../development/python-modules/datasette { }; @@ -1460,16 +1462,22 @@ in { aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { }; + aiomysql = callPackage ../development/python-modules/aiomysql { }; + aioprocessing = callPackage ../development/python-modules/aioprocessing { }; aioresponses = callPackage ../development/python-modules/aioresponses { }; + aiosqlite = callPackage ../development/python-modules/aiosqlite { }; + aiorpcx = callPackage ../development/python-modules/aiorpcx { }; aiosmtpd = callPackage ../development/python-modules/aiosmtpd { }; aiounifi = callPackage ../development/python-modules/aiounifi { }; + aiounittest = callPackage ../development/python-modules/aiounittest { }; + aiozeroconf = callPackage ../development/python-modules/aiozeroconf { }; ajpy = callPackage ../development/python-modules/ajpy { }; @@ -2626,10 +2634,14 @@ in { hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { }; + hstspreload = callPackage ../development/python-modules/hstspreload { }; + htmlmin = callPackage ../development/python-modules/htmlmin {}; httpauth = callPackage ../development/python-modules/httpauth { }; + httpx = callPackage ../development/python-modules/httpx { }; + idna-ssl = callPackage ../development/python-modules/idna-ssl { }; identify = callPackage ../development/python-modules/identify { }; @@ -4325,6 +4337,8 @@ in { orderedset = callPackage ../development/python-modules/orderedset { }; + python-multipart = callPackage ../development/python-modules/python-multipart { }; + python-otr = callPackage ../development/python-modules/python-otr { }; plone-testing = callPackage ../development/python-modules/plone-testing { }; @@ -4373,6 +4387,8 @@ in { fasteners = callPackage ../development/python-modules/fasteners { }; + aiocontextvars = callPackage ../development/python-modules/aiocontextvars { }; + aioeventlet = callPackage ../development/python-modules/aioeventlet { }; aiokafka = callPackage ../development/python-modules/aiokafka { }; @@ -4724,6 +4740,8 @@ in { pyqrcode = callPackage ../development/python-modules/pyqrcode { }; + pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { }; + pyrr = callPackage ../development/python-modules/pyrr { }; pysha3 = callPackage ../development/python-modules/pysha3 { }; @@ -5125,6 +5143,8 @@ in { typesentry = callPackage ../development/python-modules/typesentry { }; + typesystem = callPackage ../development/python-modules/typesystem { }; + s3transfer = callPackage ../development/python-modules/s3transfer { }; seqdiag = callPackage ../development/python-modules/seqdiag { }; @@ -6096,6 +6116,8 @@ in { ofxtools = callPackage ../development/python-modules/ofxtools { }; + orm = callPackage ../development/python-modules/orm { }; + basemap = callPackage ../development/python-modules/basemap { }; dict2xml = callPackage ../development/python-modules/dict2xml { };