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