Merge pull request #238076 from nyanotech/pem-initial

syncplay: fix client tls support
This commit is contained in:
Luke Granger-Brown
2023-06-18 10:53:06 +01:00
committed by GitHub
4 changed files with 63 additions and 1 deletions
@@ -3,6 +3,7 @@
, fetchFromGitHub
, buildPythonApplication
, fetchpatch
, pem
, pyside6
, twisted
, certifi
@@ -30,10 +31,11 @@ buildPythonApplication rec {
url = "https://github.com/Syncplay/syncplay/commit/b62b038cdf58c54205987dfc52ebf228505ad03b.patch";
hash = "sha256-pSP33Qn1I+nJBW8T1E1tSJKRh5OnZMRsbU+jr5z4u7c=";
})
./trusted_certificates.patch
];
buildInputs = lib.optionals enableGUI [ (if stdenv.isLinux then qt6.qtwayland else qt6.qtbase) ];
propagatedBuildInputs = [ twisted certifi ]
propagatedBuildInputs = [ certifi pem twisted ]
++ twisted.optional-dependencies.tls
++ lib.optional enableGUI pyside6
++ lib.optional (stdenv.isDarwin && enableGUI) appnope;
@@ -0,0 +1,12 @@
diff --git a/syncplay/client.py b/syncplay/client.py
index b7cb245..be72d94 100755
--- a/syncplay/client.py
+++ b/syncplay/client.py
@@ -848,6 +848,7 @@ class SyncplayClient(object):
self._endpoint = HostnameEndpoint(reactor, host, port)
try:
certs = pem.parse_file(SSL_CERT_FILE)
+ certs = [cert for cert in certs if type(cert) is pem.Certificate]
trustRoot = trustRootFromCertificates([Certificate.loadPEM(str(cert)) for cert in certs])
self.protocolFactory.options = optionsForClientTLS(hostname=host, trustRoot=trustRoot)
self._clientSupportsTLS = True
@@ -0,0 +1,46 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, pytestCheckHook
, certifi
, cryptography
, pretend
, pyopenssl
, twisted
}:
buildPythonPackage rec {
pname = "pem";
version = "21.2.0";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "hynek";
repo = pname;
rev = version;
hash = "sha256-mftLdgtgb5J4zwsb1F/4v4K7XTy4VSZBMy3zPV2f1uA=";
};
nativeCheckInputs = [
certifi
cryptography
pretend
pyopenssl
pytestCheckHook
twisted
twisted.optional-dependencies.tls
];
pythonImportsCheck = [
"pem"
];
meta = with lib; {
homepage = "https://pem.readthedocs.io/";
description = "Easy PEM file parsing in Python.";
license = licenses.mit;
maintainers = with maintainers; [ nyanotech ];
};
}
+2
View File
@@ -7478,6 +7478,8 @@ self: super: with self; {
inherit (pkgs) glibcLocales git;
};
pem = callPackage ../development/python-modules/pem { };
pendulum = callPackage ../development/python-modules/pendulum { };
pep440 = callPackage ../development/python-modules/pep440 { };