fix run in python3.7 environment
(cherry picked from commit bddff9d0ac94a2f77477d9c36d1231a5997153f3)
This commit is contained in:
parent
5067de5552
commit
9b54af1daa
80
0001-fix-run-in-python-3.7-environment.patch
Normal file
80
0001-fix-run-in-python-3.7-environment.patch
Normal 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
|
||||
|
||||
64
fix-build-fail-with-python3.7.patch
Normal file
64
fix-build-fail-with-python3.7.patch
Normal 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
|
||||
@ -1,11 +1,13 @@
|
||||
%global _empty_manifest_terminate_build 0
|
||||
Name: python-mitmproxy
|
||||
Version: 7.0.0
|
||||
Release: 1
|
||||
Release: 3
|
||||
Summary: An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.
|
||||
License: MIT
|
||||
URL: https://github.com/mitmproxy/mitmproxy/
|
||||
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
|
||||
Requires: python3-asgiref python3-blinker python3-Brotli python3-certifi python3-click
|
||||
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-pytest-cov python3-pytest-timeout python3-pytest-xdist python3-pytest
|
||||
Requires: python3-requests python3-tox python3-wheel
|
||||
|
||||
%description
|
||||
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.
|
||||
|
||||
%prep
|
||||
%autosetup -n mitmproxy-%{version}
|
||||
%autosetup -n mitmproxy-%{version} -p1
|
||||
|
||||
%build
|
||||
%py3_build
|
||||
@ -73,5 +76,11 @@ mv %{buildroot}/doclist.lst .
|
||||
%{_docdir}/*
|
||||
|
||||
%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
|
||||
- package init
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user