
this is a reintroduction of CVE-2018-1000518 which i had been calling CVE-2018-1000518-redux before it got its own CVE assigned (cherry picked from commit aba83e7f878d6c48e781a3934a79f98b072bb659) (yes, a forward cherry-pick because i fully expected the websockets 9.1 to make it into 21.05)
48 lines
1.1 KiB
Nix
48 lines
1.1 KiB
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, fetchpatch
|
|
, buildPythonPackage
|
|
, pythonOlder
|
|
, pytest
|
|
, stdenv
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "websockets";
|
|
version = "8.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "aaugustin";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "05jbqcbjg50ydwl0fijhdlqcq7fl6v99kjva66kmmzzza7vwa872";
|
|
};
|
|
|
|
patches = [
|
|
(fetchpatch {
|
|
name = "CVE-2021-33880.patch";
|
|
url = "https://github.com/aaugustin/websockets/commit/547a26b685d08cac0aa64e5e65f7867ac0ea9bc0.patch";
|
|
excludes = [ "docs/changelog.rst" ];
|
|
sha256 = "1wgsvza53ga8ldrylb3rqc17yxcrchwsihbq6i6ldpycq83q5akq";
|
|
})
|
|
];
|
|
|
|
disabled = pythonOlder "3.3";
|
|
|
|
# Tests fail on Darwin with `OSError: AF_UNIX path too long`
|
|
doCheck = !stdenv.isDarwin;
|
|
|
|
# Disable all tests that need to terminate within a predetermined amount of
|
|
# time. This is nondeterministic.
|
|
patchPhase = ''
|
|
sed -i 's/with self.assertCompletesWithin.*:/if True:/' \
|
|
tests/test_protocol.py
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "WebSocket implementation in Python 3";
|
|
homepage = "https://github.com/aaugustin/websockets";
|
|
license = licenses.bsd3;
|
|
};
|
|
}
|