change requires version to fix install issue

(cherry picked from commit ee489335fc3c47d6dd7ba235a0df0e35411035a1)
This commit is contained in:
lyn1001 2023-03-28 14:54:15 +08:00 committed by openeuler-sync-bot
parent 4e677fed1a
commit 2d42ab24b5
5 changed files with 51 additions and 205 deletions

View File

@ -0,0 +1,46 @@
diff -Nur a/setup.py b/setup.py
--- a/setup.py 2021-07-16 16:24:38.000000000 +0800
+++ b/setup.py 2022-07-26 10:21:47.296522066 +0800
@@ -66,31 +66,31 @@
# https://packaging.python.org/en/latest/requirements/#install-requires
# It is not considered best practice to use install_requires to pin dependencies to specific versions.
install_requires=[
- "asgiref>=3.2.10,<3.5",
- "blinker>=1.4, <1.5",
+ "asgiref>=3.2.10",
+ "blinker>=1.4",
"Brotli>=1.0,<1.1",
"certifi>=2019.9.11", # no semver here - this should always be on the last release!
"click>=7.0,<8.1",
- "cryptography>=3.3,<3.5",
- "flask>=1.1.1,<2.1",
- "h11>=0.11,<0.13",
+ "cryptography>=3.3",
+ "flask>=1.1.1",
+ "h11>=0.11",
"h2>=4.0,<5",
"hyperframe>=6.0,<7",
- "kaitaistruct>=0.7,<0.10",
+ "kaitaistruct>=0.7",
"ldap3>=2.8,<2.10",
"msgpack>=1.0.0, <1.1.0",
"passlib>=1.6.5, <1.8",
"protobuf>=3.14,<3.18",
- "pyOpenSSL>=20.0,<20.1",
- "pyparsing>=2.4.2,<2.5",
+ "pyOpenSSL>=20.0",
+ "pyparsing>=2.4.2",
"pyperclip>=1.6.0,<1.9",
- "ruamel.yaml>=0.16,<0.17.11",
+ "ruamel.yaml>=0.16",
"sortedcontainers>=2.3,<2.5",
"tornado>=4.3,<7",
"urwid>=2.1.1,<2.2",
- "wsproto>=1.0,<1.1",
+ "wsproto>=1.0",
"publicsuffix2>=2.20190812,<3",
- "zstandard>=0.11,<0.16",
+ "zstandard>=0.11",
],
extras_require={
':sys_platform == "win32"': [

View File

@ -1,80 +0,0 @@
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

@ -1,57 +0,0 @@
From 1f3587e008dc7314a81db4cf998ea14f48d407ec Mon Sep 17 00:00:00 2001
From: gitee-cmd <chemingdao@huawei.com>
Date: Fri, 15 Oct 2021 10:07:57 +0800
Subject: [PATCH] fix asyncio_utils run in python3.7
---
mitmproxy/utils/asyncio_utils.py | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/mitmproxy/utils/asyncio_utils.py b/mitmproxy/utils/asyncio_utils.py
index 2feaaae..71972ab 100644
--- a/mitmproxy/utils/asyncio_utils.py
+++ b/mitmproxy/utils/asyncio_utils.py
@@ -29,37 +29,34 @@ def create_task(
Ideally we stop closing the event loop during shutdown and then remove this parameter.
"""
try:
- t = asyncio.create_task(coro, name=name)
+ t = asyncio.create_task(coro)
except RuntimeError:
if ignore_closed_loop:
coro.close()
return None
else:
raise
- set_task_debug_info(t, name=name, client=client)
+ set_task_debug_info(t, client=client)
return t
def set_task_debug_info(
task: asyncio.Task,
*,
- name: str,
client: Optional[tuple] = None,
) -> None:
"""Set debug info for an externally-spawned task."""
task.created = time.time() # type: ignore
- task.set_name(name)
if client:
task.client = client # type: ignore
def task_repr(task: asyncio.Task) -> str:
"""Get a task representation with debug info."""
- name = task.get_name()
age = getattr(task, "created", "")
if age:
age = f" (age: {time.time() - age:.0f}s)"
client = getattr(task, "client", "")
if client:
client = f"{human.format_address(client)}: "
- return f"{client}{name}{age}"
+ return f"{client}{age}"
--
2.30.0

View File

@ -1,64 +0,0 @@
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,14 +1,12 @@
%global _empty_manifest_terminate_build 0
Name: python-mitmproxy
Version: 7.0.0
Release: 4
Release: 5
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
Patch0002: 0002-fix-asyncio_utils-run-in-python3.7.patch
Patch0001: 0001-change-requires-version.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
@ -77,6 +75,9 @@ mv %{buildroot}/doclist.lst .
%{_docdir}/*
%changelog
* Tue Mar 28 2023 liyanan <liyanan32@h-partners.com> - 7.0.0-5
- change requires version to fix install issue
* Fri Oct 15 2021 chemingdao <chemingdao@huawei.com> - 7.0.0-4
- fix asynocio utils run in python3.7