Bug 264993 - www/mitmproxy: Update to 10.1.1
Summary: www/mitmproxy: Update to 10.1.1
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-ports-bugs (Nobody)
URL: https://github.com/mitmproxy/mitmprox...
Keywords: needs-patch
Depends on: 254853 278783 277858
Blocks:
  Show dependency treegraph
 
Reported: 2022-07-02 12:01 UTC by p5B2EA84B3
Modified: 2024-05-05 12:41 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (gaod)
p5B2EA84B3: maintainer-feedback? (python)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description p5B2EA84B3 2022-07-02 12:01:15 UTC
https://github.com/mitmproxy/mitmproxy/blob/main/CHANGELOG.md

28 June 2022: mitmproxy 8.1.1

    Support specifying the local address for outgoing connections (#5364, @meitinger)
    Fix a bug where an excess empty chunk has been sent for chunked HEAD request. (#5372, @jixunmoe)
    Drop pkg_resources dependency. (#5401, @PavelICS)
    Fix huge (>65kb) http2 responses corrupted. (#5428, @dhabensky)
    Remove overambitious assertions in the HTTP state machine, fix some error handling. (#5383, @mhils)

15 May 2022: mitmproxy 8.1.0

    DNS support (#5232, @meitinger)
    Mitmproxy now requires Python 3.9 or above. (#5233, @mhils)
    Fix a memory leak in mitmdump where flows were kept in memory. (#4786, @mhils)
    Replayed flows retain their current position in the flow list. (#5227, @mhils)
    Periodically send HTTP/2 ping frames to keep connections alive. (#5046, @EndUser509)
    Console Performance Improvements (#3427, @BkPHcgQL3V)
    Warn users if server side event responses are received without streaming. (#4469, @mhils)
    Add flatpak support to the browser addon (#5200, @pauloromeira)
    Add example addon to dump contents to files based on a filter expression (#5190, @redraw)
    Fix a bug where the wrong SNI is sent to an upstream HTTPS proxy (#5109, @mhils)
    Make sure that mitmproxy displays error messages on startup. (#5225, @mhils)
    Add example addon for domain fronting. (#5217, @randomstuff)
    Improve cut addon to better handle binary contents (#3965, @mhils)
    Fix text truncation for full-width characters (#4278, @kjy00302)
    Fix mitmweb export copy failed in non-secure domain. (#5264, @Pactortester)
    Add example script for manipulating cookies. (#5278, @WillahScott)
    When opening an external viewer for message contents, mailcap files are not considered anymore.
    This preempts the upcoming deprecation of Python's mailcap module. (#5297, @KORraNpl)
    Fix hostname encoding for IDNA domains in upstream mode. (#5316, @nneonneo)
    Fix hot reloading of contentviews. (#5319, @nneonneo)
    Ignore HTTP/2 information responses instead of raising an error. (#5332, @mhils)
    Improve performance and memory usage by reusing OpenSSL contexts. (#5339, @mhils)
    Fix handling of multiple Cookie headers when proxying HTTP/2 to HTTP/1 (#5337, @rinsuki)

19 March 2022: mitmproxy 8.0.0
Major Changes

    Major improvements to the web interface (@gorogoroumaru)
    Event hooks can now be async (@nneonneo, #5106)
    New tls_{established,failed}_{client,server} event hooks to record negotiation success/failure (@mhils, #4790)

Security Fixes

    CVE-2022-24766: Fix request smuggling vulnerability reported by @zeyu2001 (@mhils)

Full Changelog

    Support proxy authentication for SOCKS v5 mode (@starplanet)
    Make it possible to ignore connections in the tls_clienthello event hook (@mhils)
    fix some responses not being decoded properly if the encoding was uppercase (#4735, @Mattwmaster58)
    Trigger event hooks for flows with semantically invalid requests, for example invalid content-length headers (@mhils)
    Improve error message on TLS version mismatch (@mhils)
    Windows: Switch to Python's default asyncio event loop, which increases the number of sockets that can be processed simultaneously (@mhils)
    Add client_replay_concurrency option, which allows more than one client replay request to be in-flight at a time. (@rbdixon)
    New content view which handles gRPC/protobuf. Allows to apply custom definitions to visualize different field decodings. Includes example addon which applies custom definitions for selected gRPC traffic (@mame82)
    Fix a crash caused when editing string option (#4852, @rbdixon)
    Base container image bumped to Debian 11 Bullseye (@Kriechi)
    Upstream replays don't do CONNECT on plaintext HTTP requests (#4876, @HoffmannP)
    Remove workarounds for old pyOpenSSL versions (#4831, @KarlParkinson)
    Add fonts to asset filter (~a) (#4928, @elespike)
    Fix bug that crashed when using view.flows.resolve (#4916, @rbdixon)
    Fix a bug where running() is invoked twice on startup (#3584, @mhils)
    Correct documentation example for User-Agent header modification (#4997, @jamesyale)
    Fix random connection stalls (#5040, @EndUser509)
    Add n new flow keybind to mitmweb (#5061, @ianklatzco)
    Fix compatibility with BoringSSL (@pmoulton)
    Added WebSocketMessage.injected flag (@Prinzhorn)
    Add example addon for saving streamed data to individual files (@EndUser509)
    Change connection event hooks to be blocking. Processing will only resume once the event hook has finished. (@Prinzhorn)
    Reintroduce Flow.live, which signals if a flow belongs to a currently active connection. (#4207, @mhils)
    Speculative fix for some rare HTTP/2 connection stalls (#5158, @EndUser509)
    Add ability to specify custom ports with LDAP authentication (#5068, @demonoidvk)
    Add support for rotating saved streams every hour or day (@EndUser509)
    Console Improvements on Windows (@mhils)
    Fix processing of --set options (#5067, @marwinxxii)
    Lowercase user-added header names and emit a log message to notify the user when using HTTP/2 (#4746, @mhils)
    Exit early if there are errors on startup (#4544, @mhils)
    Fixed encoding guessing: only search for meta tags in HTML bodies (##4566, @Prinzhorn)
    Binaries are now built with Python 3.10 (@mhils)
Comment 1 Fernando Apesteguía freebsd_committer freebsd_triage 2022-07-05 05:49:34 UTC
^Triage: Simplifying title

^Triage: If there is a changelog or release notes URL available for this version, please add it to the URL field.


Thanks!
Comment 2 p5B2EA84B3 2022-07-15 07:46:38 UTC
For those who have a need to use mitmproxy 8.1.1 now and cannot wait to have a working FreeBSD ports there exists a workaround by installing with pip (create a jail for this):

pkg install rust         # needed for cryptography
python3.9 -m ensurepip   # py39-pip does not work for this
rehash

pip3 install mitmproxy

pip list -v
Package            Version    Location                               Installer
------------------ ---------- -------------------------------------- ---------
asgiref            3.5.2      /usr/local/lib/python3.9/site-packages pip
blinker            1.4        /usr/local/lib/python3.9/site-packages
Brotli             1.0.9      /usr/local/lib/python3.9/site-packages
certifi            2022.6.15  /usr/local/lib/python3.9/site-packages pip
cffi               1.15.1     /usr/local/lib/python3.9/site-packages
click              8.1.3      /usr/local/lib/python3.9/site-packages pip
cryptography       37.0.4     /usr/local/lib/python3.9/site-packages pip
Flask              2.1.3      /usr/local/lib/python3.9/site-packages pip
h11                0.13.0     /usr/local/lib/python3.9/site-packages pip
h2                 4.1.0      /usr/local/lib/python3.9/site-packages pip
hpack              4.0.0      /usr/local/lib/python3.9/site-packages pip
hyperframe         6.0.1      /usr/local/lib/python3.9/site-packages pip
importlib-metadata 4.12.0     /usr/local/lib/python3.9/site-packages pip
itsdangerous       2.1.2      /usr/local/lib/python3.9/site-packages pip
Jinja2             3.1.2      /usr/local/lib/python3.9/site-packages pip
kaitaistruct       0.9        /usr/local/lib/python3.9/site-packages
ldap3              2.9.1      /usr/local/lib/python3.9/site-packages pip
MarkupSafe         2.1.1      /usr/local/lib/python3.9/site-packages
mitmproxy          8.1.1      /usr/local/lib/python3.9/site-packages pip
msgpack            1.0.4      /usr/local/lib/python3.9/site-packages pip
passlib            1.7.4      /usr/local/lib/python3.9/site-packages pip
pip                22.0.4     /usr/local/lib/python3.9/site-packages pip
protobuf           4.21.2     /usr/local/lib/python3.9/site-packages pip
publicsuffix2      2.20191221 /usr/local/lib/python3.9/site-packages pip
pyasn1             0.4.8      /usr/local/lib/python3.9/site-packages pip
pycparser          2.21       /usr/local/lib/python3.9/site-packages pip
pyOpenSSL          22.0.0     /usr/local/lib/python3.9/site-packages pip
pyparsing          3.0.9      /usr/local/lib/python3.9/site-packages pip
pyperclip          1.8.2      /usr/local/lib/python3.9/site-packages
ruamel.yaml        0.17.21    /usr/local/lib/python3.9/site-packages pip
ruamel.yaml.clib   0.2.6      /usr/local/lib/python3.9/site-packages
setuptools         58.1.0     /usr/local/lib/python3.9/site-packages pip
sortedcontainers   2.4.0      /usr/local/lib/python3.9/site-packages pip
tornado            6.2        /usr/local/lib/python3.9/site-packages pip
urwid              2.1.2      /usr/local/lib/python3.9/site-packages
Werkzeug           2.1.2      /usr/local/lib/python3.9/site-packages pip
wsproto            1.1.0      /usr/local/lib/python3.9/site-packages pip
zipp               3.8.1      /usr/local/lib/python3.9/site-packages pip
zstandard          0.18.0     /usr/local/lib/python3.9/site-packages pip

rehash
/root # mitmproxy --version
Mitmproxy: 8.1.1
Python:    3.9.13
OpenSSL:   OpenSSL 1.1.1q  5 Jul 2022
Platform:  FreeBSD-13.1-RELEASE-amd64-64bit-ELF

Voila! Happy using mitmproxy 8.1.1 :)
Comment 3 Hung-Yi Chen 2022-10-30 16:41:48 UTC
Waiting for #254853.
Comment 4 p5B2EA84B3 2024-03-19 08:07:03 UTC
(In reply to Hung-Yi Chen from comment #3)
As security/py-cryptography: Update to 42.0.5 landed, there is no reason waiting for anything.
Comment 5 p5B2EA84B3 2024-05-01 22:38:26 UTC
If anyone *needs* a working mitmproxy installation here is the painless do-it-yourself method using pip3.11

 git clone https://github.com/mitmproxy/mitmproxy.git
 cd mitmproxy
 pip3.11 install -e .

Dependency ruamel.yaml needs a patch:
 pkg install mercurial
 hg clone http://hg.code.sf.net/p/ruamel-yaml-clib/code ruamel-yaml-clib-code
 cd ruamel-yaml-clib-code/
 fetch https://cgit.freebsd.org/ports/plain/devel/py-ruamel.yaml.clib/files/patch-clang16
 patch _ruamel_yaml.c < patch-clang16
 pip3.11 install ruamel.yaml

Following files need to be edited because of missing target_os = "freebsd":
 .cargo/registry/src/index.crates.io-6f17d22bba15001f/smoltcp-0.10.0/src/phy/sys/bpf.rs
 .cargo/registry/src/index.crates.io-6f17d22bba15001f/boringtun-0.6.0/src/sleepyinstant/unix.rs

# /usr/local/bin/mitmproxy --version
Mitmproxy: 11.0.0.dev
Python:    3.11.9
OpenSSL:   OpenSSL 3.0.12 24 Oct 2023
Platform:  FreeBSD-14.0-RELEASE-p6-amd64-64bit-ELF