From 87af0c71b7d4855882df4be036f3b4b948e33257 Mon Sep 17 00:00:00 2001 From: Laurens Duijvesteijn Date: Thu, 5 Dec 2019 10:24:33 +0100 Subject: [PATCH] pythonPackages.sentry-sdk: Fix the test suite This package could not build because the tests require /etc/protocols. Therefore, make this file available using libredirect. --- .../python-modules/sentry-sdk/default.nix | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix index da729f5ab0ba..daba816cfdb5 100644 --- a/pkgs/development/python-modules/sentry-sdk/default.nix +++ b/pkgs/development/python-modules/sentry-sdk/default.nix @@ -1,4 +1,22 @@ -{ stdenv, buildPythonPackage, fetchPypi, isPy3k, urllib3, certifi, django, flask, tornado, bottle, rq, falcon, celery, pyramid, sanic, aiohttp }: +{ aiohttp +, bottle +, buildPythonPackage +, celery +, certifi +, django +, falcon +, fetchPypi +, flask +, iana-etc +, isPy3k +, libredirect +, pyramid +, rq +, sanic +, stdenv +, tornado +, urllib3 +}: buildPythonPackage rec { pname = "sentry-sdk"; @@ -20,4 +38,14 @@ buildPythonPackage rec { license = licenses.bsd2; maintainers = with maintainers; [ gebner ]; }; + + # The Sentry tests need access to `/etc/protocols` (the tests call + # `socket.getprotobyname('tcp')`, which reads from this file). Normally + # this path isn't available in the sandbox. Therefore, use libredirect + # to make on eavailable from `iana-etc`. This is a test-only operation. + preCheck = '' + export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols + export LD_PRELOAD=${libredirect}/lib/libredirect.so + ''; + postCheck = "unset NIX_REDIRECTS LD_PRELOAD"; }