Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.0 kB · 77 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778{ stdenv, lib, buildPythonPackage, pythonOlder, isPyPy, fetchPypi, postgresql, postgresqlTestHook, openssl, sphinxHook, sphinx-better-theme, buildPackages,}:
buildPythonPackage rec { pname = "psycopg2"; version = "2.9.9"; format = "setuptools";
# Extension modules don't work well with PyPy. Use psycopg2cffi instead. # c.f. https://github.com/NixOS/nixpkgs/pull/104151#issuecomment-729750892 disabled = pythonOlder "3.6" || isPyPy;
outputs = [ "out" "doc" ];
src = fetchPypi { inherit pname version; hash = "sha256-0UVL3pP7HiJBZoEWlNYA50ZDDABvuwMeoG7MLqQb8VY="; };
postPatch = '' # Preferably upstream would not depend on pg_config because config scripts are incompatible with cross-compilation, however postgresql's pc file is lacking information. # some linker flags are added but the linker ignores them because they're incompatible # https://github.com/psycopg/psycopg2/blob/89005ac5b849c6428c05660b23c5a266c96e677d/setup.py substituteInPlace setup.py \ --replace "self.pg_config_exe = self.build_ext.pg_config" 'self.pg_config_exe = "${lib.getExe' buildPackages.postgresql "pg_config"}"' '';
nativeBuildInputs = [ sphinxHook sphinx-better-theme ];
buildInputs = [ postgresql ] ++ lib.optionals stdenv.isDarwin [ openssl ];
sphinxRoot = "doc/src";
# test suite breaks at some point with: # current transaction is aborted, commands ignored until end of transaction block doCheck = false;
nativeCheckInputs = [ postgresqlTestHook ];
env = { PGDATABASE = "psycopg2_test"; };
pythonImportsCheck = [ "psycopg2" ];
disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ buildPackages.postgresql ];
meta = with lib; { description = "PostgreSQL database adapter for the Python programming language"; homepage = "https://www.psycopg.org"; license = with licenses; [ lgpl3Plus zpl20 ]; maintainers = [ ]; };}