diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix new file mode 100644 index 000000000000..75dc81ccbad3 --- /dev/null +++ b/pkgs/development/python-modules/protobuf/default.nix @@ -0,0 +1,39 @@ +{ + buildPythonPackage, + fetchPypi, + lib, + setuptools, +}: + +buildPythonPackage rec { + pname = "protobuf"; + version = "5.27.2"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-8+ze8ia5r4VgdfKCJ/8skM46WU0JLDm+5VE1c/JeJxQ="; + }; + + build-system = [ setuptools ]; + + # the pypi source archive does not ship tests + doCheck = false; + + pythonImportsCheck = [ + "google.protobuf" + "google.protobuf.compiler" + "google.protobuf.internal" + "google.protobuf.pyext" + "google.protobuf.testdata" + "google.protobuf.util" + "google._upb._message" + ]; + + meta = with lib; { + description = "Protocol Buffers are Google's data interchange format"; + homepage = "https://developers.google.com/protocol-buffers/"; + license = licenses.bsd3; + maintainers = with maintainers; [ SuperSandro2000 ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 085c63f7c3cc..87c117dc994d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10691,6 +10691,9 @@ self: super: with self; { protobuf = pkgs.protobuf; }; + # Protobuf 5.x + protobuf5 = callPackage ../development/python-modules/protobuf/default.nix { }; + # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version. protobuf = protobuf4;