Merge pull request #238076 from nyanotech/pem-initial
syncplay: fix client tls support
This commit is contained in:
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user