Download raw body.
NEW: net/wstunnel
On Sat 14/12/2024 00:08, Christoph Liebender wrote:
> Hello there everyone.
>
> This is my first try at contributing to the OpenBSD ports tree:
>
> https://liebender.dev/patches/openbsd-ports/wstunnel-port.tar.gz
>
> wstunnel is useful in case you want to connect to your OpenBSD box, given
> that
> you are behind some firewall that restricts traffic to certain ports - for
> example, you can configure wstunnel to listen on :443 and connect to your
> box
> via that port, to then route all your traffic to the wireguard interface of
> your server. There are other usecases though, but this is my primary one.
>
> Now, there are two patches included, even though wstunnel compiles on
> OpenBSD
> amd64 just fine. I had to apply these because the original Cargo.toml
> references a github repository as a crate: fastwebsockets. In this case, the
> developer of wstunnel made changes to the original crate which they did not
> (yet?) upstream, and their fork does not include any tags for the Cargo.toml
> to reference. This is why I am patching Cargo.toml to reference the original
> crate and then apply the changes of the wstunnel developer on top. I edited
> crates.inc manually in this case to add fastwebsockets-0.8.0. Is there a
> better
> way? `make modcargo-gen-crates` apparently only reads the unpatched,
> original
> Cargo.toml.
>
> Anyway, I'm glad to receive any feedback or comments. Thanks.
>
> - Christoph
Great start, thanks!
Some comments:
- You can avoid locally patching fastwebsockets by only patching
Cargo.toml, and using
DIST_TUPLE+=ddgithub erebe fastwebsockets ef904598ec168d7748b28d77ec1803ba721932d8 fastwebsockets
- Please check output of portcheck(1). You need to add WANTLIB+=m to
Makefile
- License marker in Makefile is BSD-3, not 3BSD
- Have a look at the first line of your crates.inc. It reads "# run:
make modcargo-gen-crates-licenses". This is needed for adding
license markers to the crates
- wstunnel.rc feels incomplete: Please check if there are some sane/safe
daemon_flags that can be added. Also, check if rc_bg=YES is needed.
- daemon_user _wstunnel does not exist, thus needs to be created via
PLIST. Maybe you can recycle uid 584 for this, which was previously
used by nepenthes, and has not been in used since 2018-05-01.
Please have a look at the diff below.
diff -ruN wstunnel.orig/Makefile wstunnel/Makefile
--- wstunnel.orig/Makefile Fri Dec 13 22:48:37 2024
+++ wstunnel/Makefile Sat Dec 14 11:29:48 2024
@@ -1,28 +1,26 @@
COMMENT = tunnel all your traffic over Websocket or HTTP2
-GH_ACCOUNT = erebe
-GH_PROJECT = wstunnel
-GH_TAGNAME = v10.1.7
+DIST_TUPLE += github erebe wstunnel v10.1.7 .
+DIST_TUPLE += github erebe fastwebsockets ef904598ec168d7748b28d77ec1803ba721932d8 fastwebsockets
CATEGORIES = net
-# 3BSD
+HOMEPAGE = https://github.com/erebe/wstunnel
+
+# BSD-3
PERMIT_PACKAGE = Yes
-WANTLIB += ${MODCARGO_WANTLIB}
+WANTLIB = ${MODCARGO_WANTLIB} m
MODULES = devel/cargo
+MODCARGO_RUSTFLAGS = -C debuginfo=0
CONFIGURE_STYLE = cargo
SEPARATE_BUILD = Yes
-MODCARGO_RUSTFLAGS = -C debuginfo=0
-
-RELEASE_DIR = ${MODCARGO_TARGET_DIR}/release
-
do-install:
- ${INSTALL_PROGRAM} ${RELEASE_DIR}/wstunnel ${PREFIX}/bin/
+ ${INSTALL_PROGRAM} ${MODCARGO_TARGET_DIR}/release/wstunnel ${PREFIX}/bin/
.include "crates.inc"
diff -ruN wstunnel.orig/crates.inc wstunnel/crates.inc
--- wstunnel.orig/crates.inc Fri Dec 13 22:48:37 2024
+++ wstunnel/crates.inc Sat Dec 14 10:50:26 2024
@@ -1,348 +1,346 @@
-# run: make modcargo-gen-crates-licenses
-MODCARGO_CRATES += addr2line 0.24.2
-MODCARGO_CRATES += adler2 2.0.0
-MODCARGO_CRATES += ahash 0.8.11
-MODCARGO_CRATES += aho-corasick 1.1.3
-MODCARGO_CRATES += android-tzdata 0.1.1
-MODCARGO_CRATES += android_system_properties 0.1.5
-MODCARGO_CRATES += anstream 0.6.18
-MODCARGO_CRATES += anstyle 1.0.10
-MODCARGO_CRATES += anstyle-parse 0.2.6
-MODCARGO_CRATES += anstyle-query 1.1.2
-MODCARGO_CRATES += anstyle-wincon 3.0.6
-MODCARGO_CRATES += anyhow 1.0.94
-MODCARGO_CRATES += arc-swap 1.7.1
-MODCARGO_CRATES += asn1-rs 0.6.2
-MODCARGO_CRATES += asn1-rs-derive 0.5.1
-MODCARGO_CRATES += asn1-rs-impl 0.2.0
-MODCARGO_CRATES += async-channel 2.3.1
-MODCARGO_CRATES += async-trait 0.1.83
-MODCARGO_CRATES += atomic-waker 1.1.2
-MODCARGO_CRATES += autocfg 1.4.0
-MODCARGO_CRATES += aws-lc-rs 1.11.1
-MODCARGO_CRATES += aws-lc-sys 0.23.1
-MODCARGO_CRATES += backtrace 0.3.74
-MODCARGO_CRATES += base64 0.21.7
-MODCARGO_CRATES += base64 0.22.1
-MODCARGO_CRATES += bb8 0.9.0
-MODCARGO_CRATES += bindgen 0.69.5
-MODCARGO_CRATES += bitflags 1.3.2
-MODCARGO_CRATES += bitflags 2.6.0
-MODCARGO_CRATES += block-buffer 0.10.4
-MODCARGO_CRATES += bollard 0.17.1
-MODCARGO_CRATES += bollard-stubs 1.45.0-rc.26.0.1
-MODCARGO_CRATES += bumpalo 3.16.0
-MODCARGO_CRATES += byteorder 1.5.0
-MODCARGO_CRATES += bytes 1.9.0
-MODCARGO_CRATES += cc 1.2.3
-MODCARGO_CRATES += cexpr 0.6.0
-MODCARGO_CRATES += cfg-if 1.0.0
-MODCARGO_CRATES += cfg_aliases 0.2.1
-MODCARGO_CRATES += chrono 0.4.39
-MODCARGO_CRATES += clang-sys 1.8.1
-MODCARGO_CRATES += clap 4.5.23
-MODCARGO_CRATES += clap_builder 4.5.23
-MODCARGO_CRATES += clap_derive 4.5.18
-MODCARGO_CRATES += clap_lex 0.7.4
-MODCARGO_CRATES += cmake 0.1.52
-MODCARGO_CRATES += colorchoice 1.0.3
-MODCARGO_CRATES += concurrent-queue 2.5.0
-MODCARGO_CRATES += core-foundation 0.9.4
-MODCARGO_CRATES += core-foundation 0.10.0
-MODCARGO_CRATES += core-foundation-sys 0.8.7
-MODCARGO_CRATES += cpufeatures 0.2.16
-MODCARGO_CRATES += crossbeam-utils 0.8.20
-MODCARGO_CRATES += crossterm 0.28.1
-MODCARGO_CRATES += crossterm_winapi 0.9.1
-MODCARGO_CRATES += crypto-common 0.1.6
-MODCARGO_CRATES += darling 0.20.10
-MODCARGO_CRATES += darling_core 0.20.10
-MODCARGO_CRATES += darling_macro 0.20.10
-MODCARGO_CRATES += data-encoding 2.6.0
-MODCARGO_CRATES += der-parser 9.0.0
-MODCARGO_CRATES += deranged 0.3.11
-MODCARGO_CRATES += digest 0.10.7
-MODCARGO_CRATES += displaydoc 0.2.5
-MODCARGO_CRATES += docker_credential 1.3.1
-MODCARGO_CRATES += dunce 1.0.5
-MODCARGO_CRATES += either 1.13.0
-MODCARGO_CRATES += enum-as-inner 0.6.1
-MODCARGO_CRATES += equivalent 1.0.1
-MODCARGO_CRATES += errno 0.3.10
-MODCARGO_CRATES += etcetera 0.8.0
-MODCARGO_CRATES += event-listener 5.3.1
-MODCARGO_CRATES += event-listener-strategy 0.5.3
-MODCARGO_CRATES += fastwebsockets 0.8.0
-MODCARGO_CRATES += fast-socks5 0.9.6
-MODCARGO_CRATES += fdlimit 0.3.0
-MODCARGO_CRATES += filetime 0.2.25
-MODCARGO_CRATES += fnv 1.0.7
-MODCARGO_CRATES += form_urlencoded 1.2.1
-MODCARGO_CRATES += fs_extra 1.3.0
-MODCARGO_CRATES += fsevent-sys 4.1.0
-MODCARGO_CRATES += futures 0.3.31
-MODCARGO_CRATES += futures-channel 0.3.31
-MODCARGO_CRATES += futures-core 0.3.31
-MODCARGO_CRATES += futures-executor 0.3.31
-MODCARGO_CRATES += futures-io 0.3.31
-MODCARGO_CRATES += futures-macro 0.3.31
-MODCARGO_CRATES += futures-sink 0.3.31
-MODCARGO_CRATES += futures-task 0.3.31
-MODCARGO_CRATES += futures-util 0.3.31
-MODCARGO_CRATES += generic-array 0.14.7
-MODCARGO_CRATES += getrandom 0.2.15
-MODCARGO_CRATES += gimli 0.31.1
-MODCARGO_CRATES += glob 0.3.1
-MODCARGO_CRATES += h2 0.3.26
-MODCARGO_CRATES += h2 0.4.7
-MODCARGO_CRATES += hashbrown 0.12.3
-MODCARGO_CRATES += hashbrown 0.15.2
-MODCARGO_CRATES += heck 0.5.0
-MODCARGO_CRATES += hex 0.4.3
-MODCARGO_CRATES += hickory-proto 0.24.2
-MODCARGO_CRATES += hickory-resolver 0.24.2
-MODCARGO_CRATES += home 0.5.9
-MODCARGO_CRATES += hostname 0.3.1
-MODCARGO_CRATES += http 0.2.12
-MODCARGO_CRATES += http 1.2.0
-MODCARGO_CRATES += http-body 1.0.1
-MODCARGO_CRATES += http-body-util 0.1.2
-MODCARGO_CRATES += httparse 1.9.5
-MODCARGO_CRATES += httpdate 1.0.3
-MODCARGO_CRATES += hyper 1.5.1
-MODCARGO_CRATES += hyper-named-pipe 0.1.0
-MODCARGO_CRATES += hyper-rustls 0.27.3
-MODCARGO_CRATES += hyper-util 0.1.10
-MODCARGO_CRATES += hyperlocal 0.9.1
-MODCARGO_CRATES += iana-time-zone 0.1.61
-MODCARGO_CRATES += iana-time-zone-haiku 0.1.2
-MODCARGO_CRATES += icu_collections 1.5.0
-MODCARGO_CRATES += icu_locid 1.5.0
-MODCARGO_CRATES += icu_locid_transform 1.5.0
-MODCARGO_CRATES += icu_locid_transform_data 1.5.0
-MODCARGO_CRATES += icu_normalizer 1.5.0
-MODCARGO_CRATES += icu_normalizer_data 1.5.0
-MODCARGO_CRATES += icu_properties 1.5.1
-MODCARGO_CRATES += icu_properties_data 1.5.0
-MODCARGO_CRATES += icu_provider 1.5.0
-MODCARGO_CRATES += icu_provider_macros 1.5.0
-MODCARGO_CRATES += ident_case 1.0.1
-MODCARGO_CRATES += idna 1.0.3
-MODCARGO_CRATES += idna_adapter 1.2.0
-MODCARGO_CRATES += indexmap 1.9.3
-MODCARGO_CRATES += indexmap 2.7.0
-MODCARGO_CRATES += inotify 0.10.2
-MODCARGO_CRATES += inotify-sys 0.1.5
-MODCARGO_CRATES += instant 0.1.13
-MODCARGO_CRATES += ipconfig 0.3.2
-MODCARGO_CRATES += ipnet 2.10.1
-MODCARGO_CRATES += is_terminal_polyfill 1.70.1
-MODCARGO_CRATES += itertools 0.12.1
-MODCARGO_CRATES += itoa 1.0.14
-MODCARGO_CRATES += jobserver 0.1.32
-MODCARGO_CRATES += js-sys 0.3.76
-MODCARGO_CRATES += jsonwebtoken 9.3.0
-MODCARGO_CRATES += kqueue 1.0.8
-MODCARGO_CRATES += kqueue-sys 1.0.4
-MODCARGO_CRATES += lazy_static 1.5.0
-MODCARGO_CRATES += lazycell 1.3.0
-MODCARGO_CRATES += libc 0.2.168
-MODCARGO_CRATES += libloading 0.8.6
-MODCARGO_CRATES += libredox 0.1.3
-MODCARGO_CRATES += linked-hash-map 0.5.6
-MODCARGO_CRATES += linux-raw-sys 0.4.14
-MODCARGO_CRATES += litemap 0.7.4
-MODCARGO_CRATES += lock_api 0.4.12
-MODCARGO_CRATES += log 0.4.22
-MODCARGO_CRATES += lru-cache 0.1.2
-MODCARGO_CRATES += match_cfg 0.1.0
-MODCARGO_CRATES += matchers 0.1.0
-MODCARGO_CRATES += memchr 2.7.4
-MODCARGO_CRATES += memoffset 0.9.1
-MODCARGO_CRATES += minimal-lexical 0.2.1
-MODCARGO_CRATES += miniz_oxide 0.8.0
-MODCARGO_CRATES += mio 1.0.3
-MODCARGO_CRATES += nix 0.29.0
-MODCARGO_CRATES += nom 7.1.3
-MODCARGO_CRATES += notify 7.0.0
-MODCARGO_CRATES += notify-types 1.0.0
-MODCARGO_CRATES += nu-ansi-term 0.46.0
-MODCARGO_CRATES += num-bigint 0.4.6
-MODCARGO_CRATES += num-conv 0.1.0
-MODCARGO_CRATES += num-integer 0.1.46
-MODCARGO_CRATES += num-traits 0.2.19
-MODCARGO_CRATES += num_threads 0.1.7
-MODCARGO_CRATES += object 0.36.5
-MODCARGO_CRATES += oid-registry 0.7.1
-MODCARGO_CRATES += once_cell 1.20.2
-MODCARGO_CRATES += openssl-probe 0.1.5
-MODCARGO_CRATES += overload 0.1.1
-MODCARGO_CRATES += parking 2.2.1
-MODCARGO_CRATES += parking_lot 0.12.3
-MODCARGO_CRATES += parking_lot_core 0.9.10
-MODCARGO_CRATES += parse-display 0.9.1
-MODCARGO_CRATES += parse-display-derive 0.9.1
-MODCARGO_CRATES += paste 1.0.15
-MODCARGO_CRATES += percent-encoding 2.3.1
-MODCARGO_CRATES += pin-project 1.1.7
-MODCARGO_CRATES += pin-project-internal 1.1.7
-MODCARGO_CRATES += pin-project-lite 0.2.15
-MODCARGO_CRATES += pin-utils 0.1.0
-MODCARGO_CRATES += powerfmt 0.2.0
-MODCARGO_CRATES += ppp 2.2.0
-MODCARGO_CRATES += ppv-lite86 0.2.20
-MODCARGO_CRATES += prettyplease 0.2.25
-MODCARGO_CRATES += proc-macro2 1.0.92
-MODCARGO_CRATES += quick-error 1.2.3
-MODCARGO_CRATES += quote 1.0.37
-MODCARGO_CRATES += rand 0.8.5
-MODCARGO_CRATES += rand_chacha 0.3.1
-MODCARGO_CRATES += rand_core 0.6.4
-MODCARGO_CRATES += rcgen 0.13.1
-MODCARGO_CRATES += redox_syscall 0.3.5
-MODCARGO_CRATES += redox_syscall 0.5.7
-MODCARGO_CRATES += regex 1.11.1
-MODCARGO_CRATES += regex-automata 0.1.10
-MODCARGO_CRATES += regex-automata 0.4.9
-MODCARGO_CRATES += regex-syntax 0.6.29
-MODCARGO_CRATES += regex-syntax 0.8.5
-MODCARGO_CRATES += resolv-conf 0.7.0
-MODCARGO_CRATES += ring 0.17.8
-MODCARGO_CRATES += rustc-demangle 0.1.24
-MODCARGO_CRATES += rustc-hash 1.1.0
-MODCARGO_CRATES += rusticata-macros 4.1.0
-MODCARGO_CRATES += rustix 0.38.42
-MODCARGO_CRATES += rustls 0.21.12
-MODCARGO_CRATES += rustls 0.23.19
-MODCARGO_CRATES += rustls-native-certs 0.6.3
-MODCARGO_CRATES += rustls-native-certs 0.7.3
-MODCARGO_CRATES += rustls-native-certs 0.8.1
-MODCARGO_CRATES += rustls-pemfile 1.0.4
-MODCARGO_CRATES += rustls-pemfile 2.2.0
-MODCARGO_CRATES += rustls-pki-types 1.10.0
-MODCARGO_CRATES += rustls-webpki 0.101.7
-MODCARGO_CRATES += rustls-webpki 0.102.8
-MODCARGO_CRATES += ryu 1.0.18
-MODCARGO_CRATES += same-file 1.0.6
-MODCARGO_CRATES += schannel 0.1.27
-MODCARGO_CRATES += scopeguard 1.2.0
-MODCARGO_CRATES += sct 0.7.1
-MODCARGO_CRATES += security-framework 2.11.1
-MODCARGO_CRATES += security-framework 3.0.1
-MODCARGO_CRATES += security-framework-sys 2.12.1
-MODCARGO_CRATES += serde 1.0.216
-MODCARGO_CRATES += serde_derive 1.0.216
-MODCARGO_CRATES += serde_json 1.0.133
-MODCARGO_CRATES += serde_regex 1.1.0
-MODCARGO_CRATES += serde_repr 0.1.19
-MODCARGO_CRATES += serde_urlencoded 0.7.1
-MODCARGO_CRATES += serde_with 3.11.0
-MODCARGO_CRATES += serde_with_macros 3.11.0
-MODCARGO_CRATES += serde_yaml 0.9.34+deprecated
-MODCARGO_CRATES += sha1 0.10.6
-MODCARGO_CRATES += sharded-slab 0.1.7
-MODCARGO_CRATES += shlex 1.3.0
-MODCARGO_CRATES += signal-hook 0.3.17
-MODCARGO_CRATES += signal-hook-mio 0.2.4
-MODCARGO_CRATES += signal-hook-registry 1.4.2
-MODCARGO_CRATES += simdutf8 0.1.5
-MODCARGO_CRATES += slab 0.4.9
-MODCARGO_CRATES += smallvec 1.13.2
-MODCARGO_CRATES += socket2 0.5.8
-MODCARGO_CRATES += spin 0.9.8
-MODCARGO_CRATES += stable_deref_trait 1.2.0
-MODCARGO_CRATES += strsim 0.11.1
-MODCARGO_CRATES += structmeta 0.3.0
-MODCARGO_CRATES += structmeta-derive 0.3.0
-MODCARGO_CRATES += subtle 2.6.1
-MODCARGO_CRATES += syn 2.0.90
-MODCARGO_CRATES += synstructure 0.13.1
-MODCARGO_CRATES += testcontainers 0.23.1
-MODCARGO_CRATES += thiserror 1.0.69
-MODCARGO_CRATES += thiserror-impl 1.0.69
-MODCARGO_CRATES += thread_local 1.1.8
-MODCARGO_CRATES += time 0.3.37
-MODCARGO_CRATES += time-core 0.1.2
-MODCARGO_CRATES += time-macros 0.2.19
-MODCARGO_CRATES += tinystr 0.7.6
-MODCARGO_CRATES += tinyvec 1.8.0
-MODCARGO_CRATES += tinyvec_macros 0.1.1
-MODCARGO_CRATES += tokio 1.42.0
-MODCARGO_CRATES += tokio-fd 0.3.0
-MODCARGO_CRATES += tokio-macros 2.4.0
-MODCARGO_CRATES += tokio-rustls 0.24.1
-MODCARGO_CRATES += tokio-rustls 0.26.1
-MODCARGO_CRATES += tokio-stream 0.1.17
-MODCARGO_CRATES += tokio-tar 0.3.1
-MODCARGO_CRATES += tokio-util 0.7.13
-MODCARGO_CRATES += tower-service 0.3.3
-MODCARGO_CRATES += tracing 0.1.41
-MODCARGO_CRATES += tracing-attributes 0.1.28
-MODCARGO_CRATES += tracing-core 0.1.33
-MODCARGO_CRATES += tracing-log 0.2.0
-MODCARGO_CRATES += tracing-subscriber 0.3.19
-MODCARGO_CRATES += try-lock 0.2.5
-MODCARGO_CRATES += typenum 1.17.0
-MODCARGO_CRATES += unicode-ident 1.0.14
-MODCARGO_CRATES += unsafe-libyaml 0.2.11
-MODCARGO_CRATES += untrusted 0.7.1
-MODCARGO_CRATES += untrusted 0.9.0
-MODCARGO_CRATES += url 2.5.4
-MODCARGO_CRATES += urlencoding 2.1.3
-MODCARGO_CRATES += utf-8 0.7.6
-MODCARGO_CRATES += utf16_iter 1.0.5
-MODCARGO_CRATES += utf8_iter 1.0.4
-MODCARGO_CRATES += utf8parse 0.2.2
-MODCARGO_CRATES += uuid 1.11.0
-MODCARGO_CRATES += valuable 0.1.0
-MODCARGO_CRATES += version_check 0.9.5
-MODCARGO_CRATES += walkdir 2.5.0
-MODCARGO_CRATES += want 0.3.1
-MODCARGO_CRATES += wasi 0.11.0+wasi-snapshot-preview1
-MODCARGO_CRATES += wasm-bindgen 0.2.99
-MODCARGO_CRATES += wasm-bindgen-backend 0.2.99
-MODCARGO_CRATES += wasm-bindgen-macro 0.2.99
-MODCARGO_CRATES += wasm-bindgen-macro-support 0.2.99
-MODCARGO_CRATES += wasm-bindgen-shared 0.2.99
-MODCARGO_CRATES += which 4.4.2
-MODCARGO_CRATES += widestring 1.1.0
-MODCARGO_CRATES += winapi 0.3.9
-MODCARGO_CRATES += winapi-i686-pc-windows-gnu 0.4.0
-MODCARGO_CRATES += winapi-util 0.1.9
-MODCARGO_CRATES += winapi-x86_64-pc-windows-gnu 0.4.0
-MODCARGO_CRATES += windows-core 0.52.0
-MODCARGO_CRATES += windows-sys 0.48.0
-MODCARGO_CRATES += windows-sys 0.52.0
-MODCARGO_CRATES += windows-sys 0.59.0
-MODCARGO_CRATES += windows-targets 0.48.5
-MODCARGO_CRATES += windows-targets 0.52.6
-MODCARGO_CRATES += windows_aarch64_gnullvm 0.48.5
-MODCARGO_CRATES += windows_aarch64_gnullvm 0.52.6
-MODCARGO_CRATES += windows_aarch64_msvc 0.48.5
-MODCARGO_CRATES += windows_aarch64_msvc 0.52.6
-MODCARGO_CRATES += windows_i686_gnu 0.48.5
-MODCARGO_CRATES += windows_i686_gnu 0.52.6
-MODCARGO_CRATES += windows_i686_gnullvm 0.52.6
-MODCARGO_CRATES += windows_i686_msvc 0.48.5
-MODCARGO_CRATES += windows_i686_msvc 0.52.6
-MODCARGO_CRATES += windows_x86_64_gnu 0.48.5
-MODCARGO_CRATES += windows_x86_64_gnu 0.52.6
-MODCARGO_CRATES += windows_x86_64_gnullvm 0.48.5
-MODCARGO_CRATES += windows_x86_64_gnullvm 0.52.6
-MODCARGO_CRATES += windows_x86_64_msvc 0.48.5
-MODCARGO_CRATES += windows_x86_64_msvc 0.52.6
-MODCARGO_CRATES += winreg 0.50.0
-MODCARGO_CRATES += write16 1.0.0
-MODCARGO_CRATES += writeable 0.5.5
-MODCARGO_CRATES += x509-parser 0.16.0
-MODCARGO_CRATES += xattr 1.3.1
-MODCARGO_CRATES += yasna 0.5.2
-MODCARGO_CRATES += yoke 0.7.5
-MODCARGO_CRATES += yoke-derive 0.7.5
-MODCARGO_CRATES += zerocopy 0.7.35
-MODCARGO_CRATES += zerocopy-derive 0.7.35
-MODCARGO_CRATES += zerofrom 0.1.5
-MODCARGO_CRATES += zerofrom-derive 0.1.5
-MODCARGO_CRATES += zeroize 1.8.1
-MODCARGO_CRATES += zerovec 0.10.4
-MODCARGO_CRATES += zerovec-derive 0.10.3
+MODCARGO_CRATES += addr2line 0.24.2 # Apache-2.0 OR MIT
+MODCARGO_CRATES += adler2 2.0.0 # 0BSD OR MIT OR Apache-2.0
+MODCARGO_CRATES += ahash 0.8.11 # MIT OR Apache-2.0
+MODCARGO_CRATES += aho-corasick 1.1.3 # Unlicense OR MIT
+MODCARGO_CRATES += android-tzdata 0.1.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += android_system_properties 0.1.5 # MIT/Apache-2.0
+MODCARGO_CRATES += anstream 0.6.18 # MIT OR Apache-2.0
+MODCARGO_CRATES += anstyle 1.0.10 # MIT OR Apache-2.0
+MODCARGO_CRATES += anstyle-parse 0.2.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += anstyle-query 1.1.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += anstyle-wincon 3.0.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += anyhow 1.0.94 # MIT OR Apache-2.0
+MODCARGO_CRATES += arc-swap 1.7.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += asn1-rs 0.6.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += asn1-rs-derive 0.5.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += asn1-rs-impl 0.2.0 # MIT/Apache-2.0
+MODCARGO_CRATES += async-channel 2.3.1 # Apache-2.0 OR MIT
+MODCARGO_CRATES += async-trait 0.1.83 # MIT OR Apache-2.0
+MODCARGO_CRATES += atomic-waker 1.1.2 # Apache-2.0 OR MIT
+MODCARGO_CRATES += autocfg 1.4.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += aws-lc-rs 1.11.1 # ISC AND (Apache-2.0 OR ISC)
+MODCARGO_CRATES += aws-lc-sys 0.23.1 # ISC AND (Apache-2.0 OR ISC) AND OpenSSL
+MODCARGO_CRATES += backtrace 0.3.74 # MIT OR Apache-2.0
+MODCARGO_CRATES += base64 0.21.7 # MIT OR Apache-2.0
+MODCARGO_CRATES += base64 0.22.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += bb8 0.9.0 # MIT
+MODCARGO_CRATES += bindgen 0.69.5 # BSD-3-Clause
+MODCARGO_CRATES += bitflags 1.3.2 # MIT/Apache-2.0
+MODCARGO_CRATES += bitflags 2.6.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += block-buffer 0.10.4 # MIT OR Apache-2.0
+MODCARGO_CRATES += bollard 0.17.1 # Apache-2.0
+MODCARGO_CRATES += bollard-stubs 1.45.0-rc.26.0.1 # Apache-2.0
+MODCARGO_CRATES += bumpalo 3.16.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += byteorder 1.5.0 # Unlicense OR MIT
+MODCARGO_CRATES += bytes 1.9.0 # MIT
+MODCARGO_CRATES += cc 1.2.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += cexpr 0.6.0 # Apache-2.0/MIT
+MODCARGO_CRATES += cfg-if 1.0.0 # MIT/Apache-2.0
+MODCARGO_CRATES += cfg_aliases 0.2.1 # MIT
+MODCARGO_CRATES += chrono 0.4.39 # MIT OR Apache-2.0
+MODCARGO_CRATES += clang-sys 1.8.1 # Apache-2.0
+MODCARGO_CRATES += clap 4.5.23 # MIT OR Apache-2.0
+MODCARGO_CRATES += clap_builder 4.5.23 # MIT OR Apache-2.0
+MODCARGO_CRATES += clap_derive 4.5.18 # MIT OR Apache-2.0
+MODCARGO_CRATES += clap_lex 0.7.4 # MIT OR Apache-2.0
+MODCARGO_CRATES += cmake 0.1.52 # MIT OR Apache-2.0
+MODCARGO_CRATES += colorchoice 1.0.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += concurrent-queue 2.5.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += core-foundation 0.9.4 # MIT OR Apache-2.0
+MODCARGO_CRATES += core-foundation 0.10.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += core-foundation-sys 0.8.7 # MIT OR Apache-2.0
+MODCARGO_CRATES += cpufeatures 0.2.16 # MIT OR Apache-2.0
+MODCARGO_CRATES += crossbeam-utils 0.8.20 # MIT OR Apache-2.0
+MODCARGO_CRATES += crossterm 0.28.1 # MIT
+MODCARGO_CRATES += crossterm_winapi 0.9.1 # MIT
+MODCARGO_CRATES += crypto-common 0.1.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += darling 0.20.10 # MIT
+MODCARGO_CRATES += darling_core 0.20.10 # MIT
+MODCARGO_CRATES += darling_macro 0.20.10 # MIT
+MODCARGO_CRATES += data-encoding 2.6.0 # MIT
+MODCARGO_CRATES += der-parser 9.0.0 # MIT/Apache-2.0
+MODCARGO_CRATES += deranged 0.3.11 # MIT OR Apache-2.0
+MODCARGO_CRATES += digest 0.10.7 # MIT OR Apache-2.0
+MODCARGO_CRATES += displaydoc 0.2.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += docker_credential 1.3.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += dunce 1.0.5 # CC0-1.0 OR MIT-0 OR Apache-2.0
+MODCARGO_CRATES += either 1.13.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += enum-as-inner 0.6.1 # MIT/Apache-2.0
+MODCARGO_CRATES += equivalent 1.0.1 # Apache-2.0 OR MIT
+MODCARGO_CRATES += errno 0.3.10 # MIT OR Apache-2.0
+MODCARGO_CRATES += etcetera 0.8.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += event-listener 5.3.1 # Apache-2.0 OR MIT
+MODCARGO_CRATES += event-listener-strategy 0.5.3 # Apache-2.0 OR MIT
+MODCARGO_CRATES += fast-socks5 0.9.6 # MIT
+MODCARGO_CRATES += fdlimit 0.3.0 # Apache-2.0
+MODCARGO_CRATES += filetime 0.2.25 # MIT/Apache-2.0
+MODCARGO_CRATES += fnv 1.0.7 # Apache-2.0 / MIT
+MODCARGO_CRATES += form_urlencoded 1.2.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += fs_extra 1.3.0 # MIT
+MODCARGO_CRATES += fsevent-sys 4.1.0 # MIT
+MODCARGO_CRATES += futures 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-channel 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-core 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-executor 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-io 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-macro 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-sink 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-task 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += futures-util 0.3.31 # MIT OR Apache-2.0
+MODCARGO_CRATES += generic-array 0.14.7 # MIT
+MODCARGO_CRATES += getrandom 0.2.15 # MIT OR Apache-2.0
+MODCARGO_CRATES += gimli 0.31.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += glob 0.3.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += h2 0.3.26 # MIT
+MODCARGO_CRATES += h2 0.4.7 # MIT
+MODCARGO_CRATES += hashbrown 0.12.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += hashbrown 0.15.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += heck 0.5.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += hex 0.4.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += hickory-proto 0.24.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += hickory-resolver 0.24.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += home 0.5.9 # MIT OR Apache-2.0
+MODCARGO_CRATES += hostname 0.3.1 # MIT
+MODCARGO_CRATES += http 0.2.12 # MIT OR Apache-2.0
+MODCARGO_CRATES += http 1.2.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += http-body 1.0.1 # MIT
+MODCARGO_CRATES += http-body-util 0.1.2 # MIT
+MODCARGO_CRATES += httparse 1.9.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += httpdate 1.0.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += hyper 1.5.1 # MIT
+MODCARGO_CRATES += hyper-named-pipe 0.1.0 # Apache-2.0
+MODCARGO_CRATES += hyper-rustls 0.27.3 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += hyper-util 0.1.10 # MIT
+MODCARGO_CRATES += hyperlocal 0.9.1 # MIT
+MODCARGO_CRATES += iana-time-zone 0.1.61 # MIT OR Apache-2.0
+MODCARGO_CRATES += iana-time-zone-haiku 0.1.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += icu_collections 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_locid 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_locid_transform 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_locid_transform_data 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_normalizer 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_normalizer_data 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_properties 1.5.1 # Unicode-3.0
+MODCARGO_CRATES += icu_properties_data 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_provider 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += icu_provider_macros 1.5.0 # Unicode-3.0
+MODCARGO_CRATES += ident_case 1.0.1 # MIT/Apache-2.0
+MODCARGO_CRATES += idna 1.0.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += idna_adapter 1.2.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += indexmap 1.9.3 # Apache-2.0 OR MIT
+MODCARGO_CRATES += indexmap 2.7.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += inotify 0.10.2 # ISC
+MODCARGO_CRATES += inotify-sys 0.1.5 # ISC
+MODCARGO_CRATES += instant 0.1.13 # BSD-3-Clause
+MODCARGO_CRATES += ipconfig 0.3.2 # MIT/Apache-2.0
+MODCARGO_CRATES += ipnet 2.10.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += is_terminal_polyfill 1.70.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += itertools 0.12.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += itoa 1.0.14 # MIT OR Apache-2.0
+MODCARGO_CRATES += jobserver 0.1.32 # MIT OR Apache-2.0
+MODCARGO_CRATES += js-sys 0.3.76 # MIT OR Apache-2.0
+MODCARGO_CRATES += jsonwebtoken 9.3.0 # MIT
+MODCARGO_CRATES += kqueue 1.0.8 # MIT
+MODCARGO_CRATES += kqueue-sys 1.0.4 # MIT
+MODCARGO_CRATES += lazy_static 1.5.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += lazycell 1.3.0 # MIT/Apache-2.0
+MODCARGO_CRATES += libc 0.2.168 # MIT OR Apache-2.0
+MODCARGO_CRATES += libloading 0.8.6 # ISC
+MODCARGO_CRATES += libredox 0.1.3 # MIT
+MODCARGO_CRATES += linked-hash-map 0.5.6 # MIT/Apache-2.0
+MODCARGO_CRATES += linux-raw-sys 0.4.14 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+MODCARGO_CRATES += litemap 0.7.4 # Unicode-3.0
+MODCARGO_CRATES += lock_api 0.4.12 # MIT OR Apache-2.0
+MODCARGO_CRATES += log 0.4.22 # MIT OR Apache-2.0
+MODCARGO_CRATES += lru-cache 0.1.2 # MIT/Apache-2.0
+MODCARGO_CRATES += match_cfg 0.1.0 # MIT/Apache-2.0
+MODCARGO_CRATES += matchers 0.1.0 # MIT
+MODCARGO_CRATES += memchr 2.7.4 # Unlicense OR MIT
+MODCARGO_CRATES += memoffset 0.9.1 # MIT
+MODCARGO_CRATES += minimal-lexical 0.2.1 # MIT/Apache-2.0
+MODCARGO_CRATES += miniz_oxide 0.8.0 # MIT OR Zlib OR Apache-2.0
+MODCARGO_CRATES += mio 1.0.3 # MIT
+MODCARGO_CRATES += nix 0.29.0 # MIT
+MODCARGO_CRATES += nom 7.1.3 # MIT
+MODCARGO_CRATES += notify 7.0.0 # CC0-1.0
+MODCARGO_CRATES += notify-types 1.0.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += nu-ansi-term 0.46.0 # MIT
+MODCARGO_CRATES += num-bigint 0.4.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += num-conv 0.1.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += num-integer 0.1.46 # MIT OR Apache-2.0
+MODCARGO_CRATES += num-traits 0.2.19 # MIT OR Apache-2.0
+MODCARGO_CRATES += num_threads 0.1.7 # MIT OR Apache-2.0
+MODCARGO_CRATES += object 0.36.5 # Apache-2.0 OR MIT
+MODCARGO_CRATES += oid-registry 0.7.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += once_cell 1.20.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += openssl-probe 0.1.5 # MIT/Apache-2.0
+MODCARGO_CRATES += overload 0.1.1 # MIT
+MODCARGO_CRATES += parking 2.2.1 # Apache-2.0 OR MIT
+MODCARGO_CRATES += parking_lot 0.12.3 # MIT OR Apache-2.0
+MODCARGO_CRATES += parking_lot_core 0.9.10 # MIT OR Apache-2.0
+MODCARGO_CRATES += parse-display 0.9.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += parse-display-derive 0.9.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += paste 1.0.15 # MIT OR Apache-2.0
+MODCARGO_CRATES += percent-encoding 2.3.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += pin-project 1.1.7 # Apache-2.0 OR MIT
+MODCARGO_CRATES += pin-project-internal 1.1.7 # Apache-2.0 OR MIT
+MODCARGO_CRATES += pin-project-lite 0.2.15 # Apache-2.0 OR MIT
+MODCARGO_CRATES += pin-utils 0.1.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += powerfmt 0.2.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += ppp 2.2.0 # Apache-2.0
+MODCARGO_CRATES += ppv-lite86 0.2.20 # MIT/Apache-2.0
+MODCARGO_CRATES += prettyplease 0.2.25 # MIT OR Apache-2.0
+MODCARGO_CRATES += proc-macro2 1.0.92 # MIT OR Apache-2.0
+MODCARGO_CRATES += quick-error 1.2.3 # MIT/Apache-2.0
+MODCARGO_CRATES += quote 1.0.37 # MIT OR Apache-2.0
+MODCARGO_CRATES += rand 0.8.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += rand_chacha 0.3.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += rand_core 0.6.4 # MIT OR Apache-2.0
+MODCARGO_CRATES += rcgen 0.13.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += redox_syscall 0.3.5 # MIT
+MODCARGO_CRATES += redox_syscall 0.5.7 # MIT
+MODCARGO_CRATES += regex 1.11.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += regex-automata 0.1.10 # Unlicense/MIT
+MODCARGO_CRATES += regex-automata 0.4.9 # MIT OR Apache-2.0
+MODCARGO_CRATES += regex-syntax 0.6.29 # MIT OR Apache-2.0
+MODCARGO_CRATES += regex-syntax 0.8.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += resolv-conf 0.7.0 # MIT/Apache-2.0
+MODCARGO_CRATES += ring 0.17.8 # LICENSE
+MODCARGO_CRATES += rustc-demangle 0.1.24 # MIT/Apache-2.0
+MODCARGO_CRATES += rustc-hash 1.1.0 # Apache-2.0/MIT
+MODCARGO_CRATES += rusticata-macros 4.1.0 # MIT/Apache-2.0
+MODCARGO_CRATES += rustix 0.38.42 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+MODCARGO_CRATES += rustls 0.21.12 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls 0.23.19 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-native-certs 0.6.3 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-native-certs 0.7.3 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-native-certs 0.8.1 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-pemfile 1.0.4 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-pemfile 2.2.0 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += rustls-pki-types 1.10.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += rustls-webpki 0.101.7 # ISC
+MODCARGO_CRATES += rustls-webpki 0.102.8 # ISC
+MODCARGO_CRATES += ryu 1.0.18 # Apache-2.0 OR BSL-1.0
+MODCARGO_CRATES += same-file 1.0.6 # Unlicense/MIT
+MODCARGO_CRATES += schannel 0.1.27 # MIT
+MODCARGO_CRATES += scopeguard 1.2.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += sct 0.7.1 # Apache-2.0 OR ISC OR MIT
+MODCARGO_CRATES += security-framework 2.11.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += security-framework 3.0.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += security-framework-sys 2.12.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde 1.0.216 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_derive 1.0.216 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_json 1.0.133 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_regex 1.1.0 # MIT/Apache-2.0
+MODCARGO_CRATES += serde_repr 0.1.19 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_urlencoded 0.7.1 # MIT/Apache-2.0
+MODCARGO_CRATES += serde_with 3.11.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_with_macros 3.11.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += serde_yaml 0.9.34+deprecated # MIT OR Apache-2.0
+MODCARGO_CRATES += sha1 0.10.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += sharded-slab 0.1.7 # MIT
+MODCARGO_CRATES += shlex 1.3.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += signal-hook 0.3.17 # Apache-2.0/MIT
+MODCARGO_CRATES += signal-hook-mio 0.2.4 # Apache-2.0/MIT
+MODCARGO_CRATES += signal-hook-registry 1.4.2 # Apache-2.0/MIT
+MODCARGO_CRATES += simdutf8 0.1.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += slab 0.4.9 # MIT
+MODCARGO_CRATES += smallvec 1.13.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += socket2 0.5.8 # MIT OR Apache-2.0
+MODCARGO_CRATES += spin 0.9.8 # MIT
+MODCARGO_CRATES += stable_deref_trait 1.2.0 # MIT/Apache-2.0
+MODCARGO_CRATES += strsim 0.11.1 # MIT
+MODCARGO_CRATES += structmeta 0.3.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += structmeta-derive 0.3.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += subtle 2.6.1 # BSD-3-Clause
+MODCARGO_CRATES += syn 2.0.90 # MIT OR Apache-2.0
+MODCARGO_CRATES += synstructure 0.13.1 # MIT
+MODCARGO_CRATES += testcontainers 0.23.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += thiserror 1.0.69 # MIT OR Apache-2.0
+MODCARGO_CRATES += thiserror-impl 1.0.69 # MIT OR Apache-2.0
+MODCARGO_CRATES += thread_local 1.1.8 # MIT OR Apache-2.0
+MODCARGO_CRATES += time 0.3.37 # MIT OR Apache-2.0
+MODCARGO_CRATES += time-core 0.1.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += time-macros 0.2.19 # MIT OR Apache-2.0
+MODCARGO_CRATES += tinystr 0.7.6 # Unicode-3.0
+MODCARGO_CRATES += tinyvec 1.8.0 # Zlib OR Apache-2.0 OR MIT
+MODCARGO_CRATES += tinyvec_macros 0.1.1 # MIT OR Apache-2.0 OR Zlib
+MODCARGO_CRATES += tokio 1.42.0 # MIT
+MODCARGO_CRATES += tokio-fd 0.3.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += tokio-macros 2.4.0 # MIT
+MODCARGO_CRATES += tokio-rustls 0.24.1 # MIT/Apache-2.0
+MODCARGO_CRATES += tokio-rustls 0.26.1 # MIT OR Apache-2.0
+MODCARGO_CRATES += tokio-stream 0.1.17 # MIT
+MODCARGO_CRATES += tokio-tar 0.3.1 # MIT/Apache-2.0
+MODCARGO_CRATES += tokio-util 0.7.13 # MIT
+MODCARGO_CRATES += tower-service 0.3.3 # MIT
+MODCARGO_CRATES += tracing 0.1.41 # MIT
+MODCARGO_CRATES += tracing-attributes 0.1.28 # MIT
+MODCARGO_CRATES += tracing-core 0.1.33 # MIT
+MODCARGO_CRATES += tracing-log 0.2.0 # MIT
+MODCARGO_CRATES += tracing-subscriber 0.3.19 # MIT
+MODCARGO_CRATES += try-lock 0.2.5 # MIT
+MODCARGO_CRATES += typenum 1.17.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += unicode-ident 1.0.14 # (MIT OR Apache-2.0) AND Unicode-3.0
+MODCARGO_CRATES += unsafe-libyaml 0.2.11 # MIT
+MODCARGO_CRATES += untrusted 0.7.1 # ISC
+MODCARGO_CRATES += untrusted 0.9.0 # ISC
+MODCARGO_CRATES += url 2.5.4 # MIT OR Apache-2.0
+MODCARGO_CRATES += urlencoding 2.1.3 # MIT
+MODCARGO_CRATES += utf-8 0.7.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += utf16_iter 1.0.5 # Apache-2.0 OR MIT
+MODCARGO_CRATES += utf8_iter 1.0.4 # Apache-2.0 OR MIT
+MODCARGO_CRATES += utf8parse 0.2.2 # Apache-2.0 OR MIT
+MODCARGO_CRATES += uuid 1.11.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += valuable 0.1.0 # MIT
+MODCARGO_CRATES += version_check 0.9.5 # MIT/Apache-2.0
+MODCARGO_CRATES += walkdir 2.5.0 # Unlicense/MIT
+MODCARGO_CRATES += want 0.3.1 # MIT
+MODCARGO_CRATES += wasi 0.11.0+wasi-snapshot-preview1 # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+MODCARGO_CRATES += wasm-bindgen 0.2.99 # MIT OR Apache-2.0
+MODCARGO_CRATES += wasm-bindgen-backend 0.2.99 # MIT OR Apache-2.0
+MODCARGO_CRATES += wasm-bindgen-macro 0.2.99 # MIT OR Apache-2.0
+MODCARGO_CRATES += wasm-bindgen-macro-support 0.2.99 # MIT OR Apache-2.0
+MODCARGO_CRATES += wasm-bindgen-shared 0.2.99 # MIT OR Apache-2.0
+MODCARGO_CRATES += which 4.4.2 # MIT
+MODCARGO_CRATES += widestring 1.1.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += winapi 0.3.9 # MIT/Apache-2.0
+MODCARGO_CRATES += winapi-i686-pc-windows-gnu 0.4.0 # MIT/Apache-2.0
+MODCARGO_CRATES += winapi-util 0.1.9 # Unlicense OR MIT
+MODCARGO_CRATES += winapi-x86_64-pc-windows-gnu 0.4.0 # MIT/Apache-2.0
+MODCARGO_CRATES += windows-core 0.52.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows-sys 0.48.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows-sys 0.52.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows-sys 0.59.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows-targets 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows-targets 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_aarch64_gnullvm 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_aarch64_gnullvm 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_aarch64_msvc 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_aarch64_msvc 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_i686_gnu 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_i686_gnu 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_i686_gnullvm 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_i686_msvc 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_i686_msvc 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_gnu 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_gnu 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_gnullvm 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_gnullvm 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_msvc 0.48.5 # MIT OR Apache-2.0
+MODCARGO_CRATES += windows_x86_64_msvc 0.52.6 # MIT OR Apache-2.0
+MODCARGO_CRATES += winreg 0.50.0 # MIT
+MODCARGO_CRATES += write16 1.0.0 # Apache-2.0 OR MIT
+MODCARGO_CRATES += writeable 0.5.5 # Unicode-3.0
+MODCARGO_CRATES += x509-parser 0.16.0 # MIT OR Apache-2.0
+MODCARGO_CRATES += xattr 1.3.1 # MIT/Apache-2.0
+MODCARGO_CRATES += yasna 0.5.2 # MIT OR Apache-2.0
+MODCARGO_CRATES += yoke 0.7.5 # Unicode-3.0
+MODCARGO_CRATES += yoke-derive 0.7.5 # Unicode-3.0
+MODCARGO_CRATES += zerocopy 0.7.35 # BSD-2-Clause OR Apache-2.0 OR MIT
+MODCARGO_CRATES += zerocopy-derive 0.7.35 # BSD-2-Clause OR Apache-2.0 OR MIT
+MODCARGO_CRATES += zerofrom 0.1.5 # Unicode-3.0
+MODCARGO_CRATES += zerofrom-derive 0.1.5 # Unicode-3.0
+MODCARGO_CRATES += zeroize 1.8.1 # Apache-2.0 OR MIT
+MODCARGO_CRATES += zerovec 0.10.4 # Unicode-3.0
+MODCARGO_CRATES += zerovec-derive 0.10.3 # Unicode-3.0
diff -ruN wstunnel.orig/distinfo wstunnel/distinfo
--- wstunnel.orig/distinfo Fri Dec 13 22:48:37 2024
+++ wstunnel/distinfo Sat Dec 14 11:05:11 2024
@@ -72,7 +72,6 @@
SHA256 (cargo/event-listener-5.3.1.tar.gz) = YDK+m9JwI6dxcBzEn58FPHUQVfce+y4K5cFYCQk2dbo=
SHA256 (cargo/event-listener-strategy-0.5.3.tar.gz) = PD5ODdNnPBE5vwQfMAiBbZzylGu/rClFwJ5SO417BbI=
SHA256 (cargo/fast-socks5-0.9.6.tar.gz) = +J821O4SNw0w1XsWx+GQlQoakW59u7X9WkEvXvkT/oQ=
-SHA256 (cargo/fastwebsockets-0.8.0.tar.gz) = JtoMe1zvRcUhpvnN//3+tsn1gE+6wzLeta4lRjTHpr4=
SHA256 (cargo/fdlimit-0.3.0.tar.gz) = 4YL328Lvc9nvZzUcX7vqCEcpxINi086d1Ewo4y4nf+U=
SHA256 (cargo/filetime-0.2.25.tar.gz) = NcBSLpgeaMv6jD+XhEGl80swuW4UazPNM1kXa1D+hYY=
SHA256 (cargo/fnv-1.0.7.tar.gz) = P57skY0/JAad7LmvFVTK18iA4tokqa/YisoABTGrgsE=
@@ -345,7 +344,8 @@
SHA256 (cargo/zeroize-1.8.1.tar.gz) = ztNniih5swMG0yP0VCYmaXpGSpfAoHya6/frymXNTd4=
SHA256 (cargo/zerovec-0.10.4.tar.gz) = qiuJPXnfI7+xLVRhAY1AjqGd+v52wsfvbU66YU+P8Hk=
SHA256 (cargo/zerovec-derive-0.10.3.tar.gz) = bq+m37F1hOo+K9bnbgzBWtevErCavdHKVZYb7ZsQY8Y=
-SHA256 (wstunnel-10.1.7.tar.gz) = fMEWgfd+tQMxEzKZF0FQ7ekp7azzgbsGq3YgU3cLoDs=
+SHA256 (erebe-fastwebsockets-ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = pTk3zyTTSZ0jr2ofJrFT4W3HZ15YwiySddSrPzmd6WY=
+SHA256 (erebe-wstunnel-v10.1.7.tar.gz) = fMEWgfd+tQMxEzKZF0FQ7ekp7azzgbsGq3YgU3cLoDs=
SIZE (cargo/addr2line-0.24.2.tar.gz) = 39015
SIZE (cargo/adler2-2.0.0.tar.gz) = 13529
SIZE (cargo/ahash-0.8.11.tar.gz) = 43607
@@ -420,7 +420,6 @@
SIZE (cargo/event-listener-5.3.1.tar.gz) = 42576
SIZE (cargo/event-listener-strategy-0.5.3.tar.gz) = 10920
SIZE (cargo/fast-socks5-0.9.6.tar.gz) = 33144
-SIZE (cargo/fastwebsockets-0.8.0.tar.gz) = 52533
SIZE (cargo/fdlimit-0.3.0.tar.gz) = 6415
SIZE (cargo/filetime-0.2.25.tar.gz) = 14940
SIZE (cargo/fnv-1.0.7.tar.gz) = 11266
@@ -693,4 +692,5 @@
SIZE (cargo/zeroize-1.8.1.tar.gz) = 20029
SIZE (cargo/zerovec-0.10.4.tar.gz) = 126398
SIZE (cargo/zerovec-derive-0.10.3.tar.gz) = 19438
-SIZE (wstunnel-10.1.7.tar.gz) = 281043
+SIZE (erebe-fastwebsockets-ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = 57473
+SIZE (erebe-wstunnel-v10.1.7.tar.gz) = 281043
diff -ruN wstunnel.orig/patches/patch-Cargo_toml wstunnel/patches/patch-Cargo_toml
--- wstunnel.orig/patches/patch-Cargo_toml Fri Dec 13 22:48:37 2024
+++ wstunnel/patches/patch-Cargo_toml Sat Dec 14 11:04:46 2024
@@ -6,7 +6,7 @@
clap = { version = "4.5.23", features = ["derive", "env"] }
fast-socks5 = { version = "0.9.6", features = [] }
-fastwebsockets = { git = "https://github.com/erebe/fastwebsockets.git", features = ["upgrade", "simd", "unstable-split"] }
-+fastwebsockets = { version = "0.8.0", features = ["upgrade", "simd", "unstable-split"] }
++fastwebsockets = { path = "./fastwebsockets", features = ["upgrade", "simd", "unstable-split"] }
futures-util = { version = "0.3.31" }
hickory-resolver = { version = "0.24.2", features = ["tokio", "dns-over-https-rustls", "dns-over-rustls", "native-certs"] }
ppp = { version = "2.2.0", features = [] }
diff -ruN wstunnel.orig/patches/patch-modcargo-crates_fastwebsockets-0_8_0_src_lib_rs wstunnel/patches/patch-modcargo-crates_fastwebsockets-0_8_0_src_lib_rs
--- wstunnel.orig/patches/patch-modcargo-crates_fastwebsockets-0_8_0_src_lib_rs Fri Dec 13 22:48:37 2024
+++ wstunnel/patches/patch-modcargo-crates_fastwebsockets-0_8_0_src_lib_rs Thu Jan 1 01:00:00 1970
@@ -1,46 +0,0 @@
-Index: modcargo-crates/fastwebsockets-0.8.0/src/lib.rs
---- modcargo-crates/fastwebsockets-0.8.0/src/lib.rs.orig
-+++ modcargo-crates/fastwebsockets-0.8.0/src/lib.rs
-@@ -342,8 +342,23 @@ impl<'f, S> WebSocketWrite<S> {
- {
- self.write_half.write_frame(&mut self.stream, frame).await
- }
-+
-+ pub async fn flush(&mut self) -> Result<(), WebSocketError>
-+ where
-+ S: AsyncWrite + Unpin,
-+ {
-+ flush(&mut self.stream).await
-+ }
- }
-
-+#[inline]
-+async fn flush<S>(stream: &mut S) -> Result<(), WebSocketError>
-+where
-+ S: AsyncWrite + Unpin,
-+{
-+ stream.flush().await.map_err(|e| WebSocketError::IoError(e))
-+}
-+
- /// WebSocket protocol implementation over an async stream.
- pub struct WebSocket<S> {
- stream: S,
-@@ -493,6 +508,18 @@ impl<'f, S> WebSocket<S> {
- {
- self.write_half.write_frame(&mut self.stream, frame).await?;
- Ok(())
-+ }
-+
-+ /// Flushes the data from the underlying stream.
-+ ///
-+ /// if the underlying stream is buffered (i.e: TlsStream<TcpStream>), it is needed to call flush
-+ /// to be sure that the written frame are correctly pushed down to the bottom stream/channel.
-+ ///
-+ pub async fn flush(&mut self) -> Result<(), WebSocketError>
-+ where
-+ S: AsyncWrite + Unpin,
-+ {
-+ flush(&mut self.stream).await
- }
-
- /// Reads a frame from the stream.
diff -ruN wstunnel.orig/pkg/DESCR wstunnel/pkg/DESCR
--- wstunnel.orig/pkg/DESCR Fri Dec 13 22:48:37 2024
+++ wstunnel/pkg/DESCR Sat Dec 14 10:39:57 2024
@@ -1 +1 @@
-Tunnel all your traffic over Websocket or HTTP2 - Bypass firewalls/DPI
+Tunnel all your traffic over Websocket or HTTP2 - Bypass firewalls/DPI.
diff -ruN wstunnel.orig/pkg/PLIST wstunnel/pkg/PLIST
--- wstunnel.orig/pkg/PLIST Fri Dec 13 22:48:37 2024
+++ wstunnel/pkg/PLIST Sat Dec 14 13:20:26 2024
@@ -1,2 +1,4 @@
+@newgroup _wstunnel:584
+@newuser _wstunnel:584:584::wstunnel daemon:/nonexistent:/sbin/nologin
@rcscript ${RCDIR}/wstunnel
@bin bin/wstunnel
diff -ruN wstunnel.orig/pkg/wstunnel.rc wstunnel/pkg/wstunnel.rc
--- wstunnel.orig/pkg/wstunnel.rc Fri Dec 13 22:48:37 2024
+++ wstunnel/pkg/wstunnel.rc Sat Dec 14 11:06:05 2024
@@ -1,11 +1,13 @@
#!/bin/ksh
daemon="${TRUEPREFIX}/bin/wstunnel"
+daemon_flags="server wss://127.0.0.1:8080"
daemon_user="_wstunnel"
daemon_logger="daemon.info"
-rc_reload="NO"
-
. /etc/rc.d/rc.subr
+
+rc_bg=YES
+rc_reload=NO
rc_cmd $1
NEW: net/wstunnel