!5 fix run with python3.7

From: @gitee-cmd
Reviewed-by: @yangzhao_kl,@yangzhao_kl
Signed-off-by: @yangzhao_kl
This commit is contained in:
openeuler-ci-bot 2021-09-30 09:50:45 +00:00 committed by Gitee
commit ac07069d0c
3 changed files with 155 additions and 2 deletions

View File

@ -0,0 +1,80 @@
From af22a19f18f7997a7c7a3ee4ad60f03ab89b0459 Mon Sep 17 00:00:00 2001
From: root <root@localhost.localdomain>
Date: Thu, 30 Sep 2021 17:03:09 +0800
Subject: [PATCH] fix run in python 3.7 environment
---
mitmproxy/addons/tlsconfig.py | 3 ++-
mitmproxy/net/server_spec.py | 5 +++--
mitmproxy/proxy/commands.py | 3 ++-
mitmproxy/proxy/layers/tls.py | 3 ++-
4 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/mitmproxy/addons/tlsconfig.py b/mitmproxy/addons/tlsconfig.py
index 260be64..ee5efde 100644
--- a/mitmproxy/addons/tlsconfig.py
+++ b/mitmproxy/addons/tlsconfig.py
@@ -1,7 +1,8 @@
import ipaddress
import os
from pathlib import Path
-from typing import List, Optional, TypedDict, Any
+from typing import List, Optional, Any
+from typing_extensions import TypedDict
from OpenSSL import SSL
from mitmproxy import certs, ctx, exceptions, connection
diff --git a/mitmproxy/net/server_spec.py b/mitmproxy/net/server_spec.py
index f117774..99c5996 100644
--- a/mitmproxy/net/server_spec.py
+++ b/mitmproxy/net/server_spec.py
@@ -3,7 +3,8 @@ Server specs are used to describe an upstream proxy or server.
"""
import functools
import re
-from typing import Tuple, Literal, NamedTuple
+from typing import Tuple, NamedTuple
+from typing_extensions import Literal
from mitmproxy.net import check
@@ -26,7 +27,7 @@ server_spec_re = re.compile(
)
-@functools.lru_cache
+@functools.lru_cache()
def parse(server_spec: str) -> ServerSpec:
"""
Parses a server mode specification, e.g.:
diff --git a/mitmproxy/proxy/commands.py b/mitmproxy/proxy/commands.py
index 8f07990..5cada3c 100644
--- a/mitmproxy/proxy/commands.py
+++ b/mitmproxy/proxy/commands.py
@@ -6,7 +6,8 @@ possibly to the master and addons.
The counterpart to commands are events.
"""
-from typing import Literal, Union, TYPE_CHECKING
+from typing import Union, TYPE_CHECKING
+from typing_extensions import Literal
import mitmproxy.hooks
from mitmproxy.connection import Connection, Server
diff --git a/mitmproxy/proxy/layers/tls.py b/mitmproxy/proxy/layers/tls.py
index c9a2ff2..e2bbb7a 100644
--- a/mitmproxy/proxy/layers/tls.py
+++ b/mitmproxy/proxy/layers/tls.py
@@ -1,7 +1,8 @@
import struct
import time
from dataclasses import dataclass
-from typing import Iterator, Literal, Optional, Tuple
+from typing import Iterator, Optional, Tuple
+from typing_extensions import Literal
from OpenSSL import SSL
from mitmproxy import certs, connection
--
2.27.0

View File

@ -0,0 +1,64 @@
diff -Nur mitmproxy-7.0.0/mitmproxy/contentviews/__init__.py mitmproxy-7.0.0-1/mitmproxy/contentviews/__init__.py
--- mitmproxy-7.0.0/mitmproxy/contentviews/__init__.py 2021-07-16 16:24:38.000000000 +0800
+++ mitmproxy-7.0.0-1/mitmproxy/contentviews/__init__.py 2021-08-04 15:27:39.221691053 +0800
@@ -99,8 +99,10 @@
http_message = None
if isinstance(message, http.Message):
http_message = message
- if ctype := message.headers.get("content-type"):
- if ct := http.parse_content_type(ctype):
+ ctype_tmp = message.headers.get("content-type")
+ if ctype == ctype_tmp:
+ ct_tmp = http.parse_content_type(ctype)
+ if ct == ct_tmp:
content_type = f"{ct[0]}/{ct[1]}"
description, lines, error = get_content_view(
diff -Nur mitmproxy-7.0.0/mitmproxy/net/tls.py mitmproxy-7.0.0-1/mitmproxy/net/tls.py
--- mitmproxy-7.0.0/mitmproxy/net/tls.py 2021-07-16 16:24:38.000000000 +0800
+++ mitmproxy-7.0.0-1/mitmproxy/net/tls.py 2021-08-04 15:32:53.086778204 +0800
@@ -106,7 +106,7 @@
ok += SSL._lib.SSL_CTX_set_max_proto_version(context._context, max_version.value) # type: ignore
if ok != 2:
raise RuntimeError(
- f"Error setting TLS versions ({min_version=}, {max_version=}). "
+ f"Error setting TLS versions ({min_version}, {max_version}). "
"The version you specified may be unavailable in your libssl."
)
@@ -177,7 +177,7 @@
try:
context.load_verify_locations(ca_pemfile, ca_path)
except SSL.Error as e:
- raise RuntimeError(f"Cannot load trusted certificates ({ca_pemfile=}, {ca_path=}).") from e
+ raise RuntimeError(f"Cannot load trusted certificates ({ca_pemfile}, {ca_path}).") from e
# Client Certs
if client_cert:
diff -Nur mitmproxy-7.0.0/mitmproxy/proxy/layers/http/__init__.py mitmproxy-7.0.0-1/mitmproxy/proxy/layers/http/__init__.py
--- mitmproxy-7.0.0/mitmproxy/proxy/layers/http/__init__.py 2021-07-16 16:24:38.000000000 +0800
+++ mitmproxy-7.0.0-1/mitmproxy/proxy/layers/http/__init__.py 2021-08-04 15:30:16.424239006 +0800
@@ -148,8 +148,8 @@
else:
self.flow = event.replay_flow
self.flow.request = event.request
-
- if err := validate_request(self.mode, self.flow.request):
+ err_tmp = validate_request(self.mode, self.flow.request)
+ if err == err_tmp:
self.flow.response = http.Response.make(502, str(err))
self.client_state = self.state_errored
return (yield from self.send_response())
diff -Nur mitmproxy-7.0.0/mitmproxy/proxy/server.py mitmproxy-7.0.0-1/mitmproxy/proxy/server.py
--- mitmproxy-7.0.0/mitmproxy/proxy/server.py 2021-07-16 16:24:38.000000000 +0800
+++ mitmproxy-7.0.0-1/mitmproxy/proxy/server.py 2021-08-04 15:31:48.925738277 +0800
@@ -142,7 +142,8 @@
server=command.connection
)
await self.handle_hook(server_hooks.ServerConnectHook(hook_data))
- if err := command.connection.error:
+ err_tmp = command.connection.error
+ if err == err_tmp:
self.log(f"server connection to {human.format_address(command.connection.address)} killed before connect: {err}")
self.server_event(events.OpenConnectionCompleted(command, f"Connection killed: {err}"))
return

View File

@ -1,11 +1,13 @@
%global _empty_manifest_terminate_build 0 %global _empty_manifest_terminate_build 0
Name: python-mitmproxy Name: python-mitmproxy
Version: 7.0.0 Version: 7.0.0
Release: 1 Release: 3
Summary: An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets. Summary: An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.
License: MIT License: MIT
URL: https://github.com/mitmproxy/mitmproxy/ URL: https://github.com/mitmproxy/mitmproxy/
Source0: https://github.com/mitmproxy/mitmproxy/archive/refs/tags/v%{version}.tar.gz Source0: https://github.com/mitmproxy/mitmproxy/archive/refs/tags/v%{version}.tar.gz
Patch0: fix-build-fail-with-python3.7.patch
Patch0001: 0001-fix-run-in-python-3.7-environment.patch
BuildArch: noarch BuildArch: noarch
Requires: python3-asgiref python3-blinker python3-Brotli python3-certifi python3-click Requires: python3-asgiref python3-blinker python3-Brotli python3-certifi python3-click
Requires: python3-cryptography python3-flask python3-h11 python3-h2 python3-hyperframe Requires: python3-cryptography python3-flask python3-h11 python3-h2 python3-hyperframe
@ -16,6 +18,7 @@ Requires: python3-publicsuffix2 python3-zstandard python3-pydivert py
Requires: python3-parver python3-pdoc python3-pyinstaller python3-pytest-asyncio Requires: python3-parver python3-pdoc python3-pyinstaller python3-pytest-asyncio
Requires: python3-pytest-cov python3-pytest-timeout python3-pytest-xdist python3-pytest Requires: python3-pytest-cov python3-pytest-timeout python3-pytest-xdist python3-pytest
Requires: python3-requests python3-tox python3-wheel Requires: python3-requests python3-tox python3-wheel
%description %description
mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets. mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets.
@ -33,7 +36,7 @@ Provides: python3-mitmproxy-doc
mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets. mitmproxy is an interactive, SSL/TLS-capable intercepting proxy with a console interface for HTTP/1, HTTP/2, and WebSockets.
%prep %prep
%autosetup -n mitmproxy-%{version} %autosetup -n mitmproxy-%{version} -p1
%build %build
%py3_build %py3_build
@ -73,5 +76,11 @@ mv %{buildroot}/doclist.lst .
%{_docdir}/* %{_docdir}/*
%changelog %changelog
* Thu Sep 30 2021 chemingdao <chemingdao@huawei.com> - 7.0.0-3
- fix run in python 3.7 environment
* Sat Aug 21 2021 liyanan <liyanan32@huawei.com> - 7.0.0-2
- fix build fail with python3.7
* Fri Jul 30 2021 liyanan <liyanan32@huawei.com> - 7.0.0-1 * Fri Jul 30 2021 liyanan <liyanan32@huawei.com> - 7.0.0-1
- package init - package init