Merge branch 'master' of github.com:NixOS/nixpkgs into staging-next

This commit is contained in:
Jonathan Ringer 2019-12-30 10:14:18 -08:00
commit 446fec8c2d
No known key found for this signature in database
GPG key ID: 5C841D3CFDFEC4E0
45 changed files with 806 additions and 180 deletions

View file

@ -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";
};
};

View file

@ -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) ''

View file

@ -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 .

View file

@ -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

View file

@ -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";
}

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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/";

View file

@ -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; {

View file

@ -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',

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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";

View file

@ -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 ];
};
}

View file

@ -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; {

View file

@ -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 ];
};
}

View file

@ -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 ];
};
}

View file

@ -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; {

View file

@ -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.";

View file

@ -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

View file

@ -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 ];

View file

@ -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 ];
};
}

View file

@ -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 {

View file

@ -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 ];

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -300,7 +300,7 @@ in {
ubootSheevaplug = buildUBoot {
defconfig = "sheevaplug_defconfig";
extraMeta.platforms = ["armv5tel-linux"];
filesToInstall = ["u-boot.bin"];
filesToInstall = ["u-boot.kwb"];
};
ubootSopine = buildUBoot {

View file

@ -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";

View file

@ -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;

View file

@ -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: '')

View file

@ -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/;

View file

@ -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";

View file

@ -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";

View file

@ -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.

View file

@ -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

View file

@ -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;

View file

@ -5,7 +5,7 @@ stdenv.mkDerivation {
pname = "libdislocator";
src = afl.src;
sourceRoot = "${afl.name}/libdislocator";
sourceRoot = "${afl.src.name}/libdislocator";
makeFlags = [ "PREFIX=$(out)" ];

View file

@ -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 <sys/memfd.h>
+#include <sys/mman.h>
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 <sys/memfd.h>
-#elif defined CONFIG_LINUX
+#if defined CONFIG_LINUX && !defined CONFIG_MEMFD
#include <sys/syscall.h>
#include <asm/unistd.h>

View file

@ -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 =

View file

@ -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 { };