Index | Thread | Search

From:
Christoph Liebender <christoph@liebender.dev>
Subject:
Re: NEW: net/wstunnel
To:
Björn Ketelaars <bjorn.ketelaars@hydroxide.nl>
Cc:
ports@openbsd.org
Date:
Mon, 16 Dec 2024 21:54:43 +0100

Download raw body.

Thread
Am 14.12.24 um 22:37 schrieb Christoph Liebender:
> Am 14.12.24 um 19:01 schrieb Björn Ketelaars:
>> On Sat 14/12/2024 14:35, Christoph Liebender wrote:
>>> Am 14.12.24 um 13:26 schrieb Björn Ketelaars:
>>>> 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!
>>>
>>> Many thanks for your suggestions! The OpenBSD porting tools seem to 
>>> be more
>>> flexible than I initially thought :b
>>>
>>>> - 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.
>>>
>>> Yes, I have checked again and there probably also needs to be `--no- 
>>> color
>>> true` because otherwise wstunnel would fill the log with escape- 
>>> sequences.
>>> Though, would it make sense to "enforce" this argument no matter what
>>> deamon_flags are set? Does this need a custom rc_cmd?
>>> And yes, rc_bg=YES is needed because wstunnel stays in the foreground.
>>>
>>> I have applied your changes and reuploaded a v2 tarball to:
>>>
>>> https://liebender.dev/pub/openbsd-ports/wstunnel-port-v2.tar.gz (it 
>>> is also
>>> attached for convenience)
>>>
>>> -#584 _nepenthes        _nepenthes    net/nepenthes
>>> +584 _wstunnel        _wstunnel    net/wstunnel
>>
>> Recycling id 584 should be ok.
>>
>> Concerning the port itself, couple of things:
>> - No need for the GH_* stuff. "DIST_TUPLE+=github erebe wstunnel v10.1.7
>>    ." already does the heavy lifting.
>> - As a consequence you need to re-run 'make makesum' as PLIST needs to
>>    be updated.
>> - Maybe make the --no-color flag default?
>>
>>
>> diff -ruN wstunnel.orig/Makefile wstunnel/Makefile
>> --- wstunnel.orig/Makefile    Sat Dec 14 13:47:35 2024
>> +++ wstunnel/Makefile    Sat Dec 14 18:55:17 2024
>> @@ -3,10 +3,6 @@
>>   DIST_TUPLE +=        github erebe wstunnel v10.1.7 .
>>   DIST_TUPLE +=        github erebe fastwebsockets 
>> ef904598ec168d7748b28d77ec1803ba721932d8 fastwebsockets
>> -GH_ACCOUNT =        erebe
>> -GH_PROJECT =        wstunnel
>> -GH_TAGNAME =        v10.1.7
>> -
>>   CATEGORIES =        net
>>   HOMEPAGE =        https://github.com/erebe/wstunnel
>> diff -ruN wstunnel.orig/distinfo wstunnel/distinfo
>> --- wstunnel.orig/distinfo    Sat Dec 14 14:22:21 2024
>> +++ wstunnel/distinfo    Sat Dec 14 18:55:24 2024
>> @@ -346,7 +346,6 @@
>>   SHA256 (cargo/zerovec-derive-0.10.3.tar.gz) = 
>> bq+m37F1hOo+K9bnbgzBWtevErCavdHKVZYb7ZsQY8Y=
>>   SHA256 (erebe-fastwebsockets- 
>> ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = 
>> pTk3zyTTSZ0jr2ofJrFT4W3HZ15YwiySddSrPzmd6WY=
>>   SHA256 (erebe-wstunnel-v10.1.7.tar.gz) = 
>> fMEWgfd+tQMxEzKZF0FQ7ekp7azzgbsGq3YgU3cLoDs=
>> -SHA256 (wstunnel-10.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
>> @@ -695,4 +694,3 @@
>>   SIZE (cargo/zerovec-derive-0.10.3.tar.gz) = 19438
>>   SIZE (erebe-fastwebsockets- 
>> ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = 57473
>>   SIZE (erebe-wstunnel-v10.1.7.tar.gz) = 281043
>> -SIZE (wstunnel-10.1.7.tar.gz) = 281043
>> diff -ruN wstunnel.orig/pkg/wstunnel.rc wstunnel/pkg/wstunnel.rc
>> --- wstunnel.orig/pkg/wstunnel.rc    Sat Dec 14 13:41:17 2024
>> +++ wstunnel/pkg/wstunnel.rc    Sat Dec 14 18:56:03 2024
>> @@ -1,9 +1,9 @@
>>   #!/bin/ksh
>> -daemon="${TRUEPREFIX}/bin/wstunnel"
>> +daemon="${TRUEPREFIX}/bin/wstunnel --no-color true"
>>   daemon_user="_wstunnel"
>>   daemon_logger="daemon.info"
>> -daemon_flags="server wss://localhost:8080 --no-color true"
>> +daemon_flags="server wss://localhost:8080"
>>   . /etc/rc.d/rc.subr
> 
> Right, I missed removing the GH_* variables. And interestingly, adding 
> `--no-color true` right before `client` or `server` works even though it 
> is not documented that way...
> 
> I've applied your patch:
> 
> https://liebender.dev/pub/openbsd-ports/wstunnel-port-v3.tar.gz (attached)
> 
> OK?

Here goes the incremental diff for wstunnel v10.1.8:

Tarball: https://liebender.dev/pub/openbsd-ports/wstunnel-port-v4.tar.gz 
(attached)

- Christoph

-----

diff --git a/net/wstunnel/Makefile b/net/wstunnel/Makefile
index 963ee22b736..802e3827c8f 100644
--- a/net/wstunnel/Makefile
+++ b/net/wstunnel/Makefile
@@ -1,6 +1,6 @@
  COMMENT =		tunnel all your traffic over Websocket or HTTP2

-DIST_TUPLE +=		github erebe wstunnel v10.1.7 .
+DIST_TUPLE +=		github erebe wstunnel v10.1.8 .
  DIST_TUPLE +=		github erebe fastwebsockets 
ef904598ec168d7748b28d77ec1803ba721932d8 fastwebsockets

  CATEGORIES =		net
diff --git a/net/wstunnel/crates.inc b/net/wstunnel/crates.inc
index 637f69e6066..7f71e7e0bab 100644
--- a/net/wstunnel/crates.inc
+++ b/net/wstunnel/crates.inc
@@ -33,7 +33,7 @@ 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 +=	cc	1.2.4	# 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
@@ -198,7 +198,7 @@ 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 +=	redox_syscall	0.5.8	# 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
@@ -211,13 +211,13 @@ 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	0.23.20	# 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-pki-types	1.10.1	# 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
diff --git a/net/wstunnel/distinfo b/net/wstunnel/distinfo
index a5971f7a8c7..984a2be1f18 100644
--- a/net/wstunnel/distinfo
+++ b/net/wstunnel/distinfo
@@ -33,7 +33,7 @@ SHA256 (cargo/bollard-stubs-1.45.0-rc.26.0.1.tar.gz) = 
bXxUFeOmvG0+me/2Jo5Ij9TuJ
  SHA256 (cargo/bumpalo-3.16.0.tar.gz) = 
eSlnFhcYgJQ7hHC1+NA6pV6y5kWkh0vbsorbSRYuASw=
  SHA256 (cargo/byteorder-1.5.0.tar.gz) = 
H9DyWEFG9vLvSAhQUIhqzzU77/cwXr0a5pUA4nxn9ks=
  SHA256 (cargo/bytes-1.9.0.tar.gz) = 
MlkY1v4y8jsZh4/ks0eUrkH8Gd2+U7EFcaSHTUT/05s=
-SHA256 (cargo/cc-1.2.3.tar.gz) = 
J/ZXZHvP9TlL9WxzF2Zbv3kKE3pQ6qpca/u54npRjy0=
+SHA256 (cargo/cc-1.2.4.tar.gz) = 
kVe7qmsWWIDCekKTpHTJHNzyZcxozIKb8Qvglko5HK8=
  SHA256 (cargo/cexpr-0.6.0.tar.gz) = 
b6w4epi7fDcpIFfP/FbWLstimQACZAJjOukWDfk6h2Y=
  SHA256 (cargo/cfg-if-1.0.0.tar.gz) = 
uvHeQzl2FYi8Bhnjy8ASDuWC67dLU7Tvv3kRe9LaQP0=
  SHA256 (cargo/cfg_aliases-0.2.1.tar.gz) = 
YTr+R/zV+sfM8duTurywgsWZTZlvILixWfKtFljrVyQ=
@@ -198,7 +198,7 @@ SHA256 (cargo/rand_chacha-0.3.1.tar.gz) = 
5sEKY6D6MiUr5J0h53CdTUuvjSMcLbzh6qgUG5
  SHA256 (cargo/rand_core-0.6.4.tar.gz) = 
7AvkeV4vaigGm+wLX/PirJuvyZ5qmn3DVHmWxcgWkiw=
  SHA256 (cargo/rcgen-0.13.1.tar.gz) = 
VAd+GHLEZ4hUDeHqPX9MyxmD0S+aqQmyNEaGdsGjZ3k=
  SHA256 (cargo/redox_syscall-0.3.5.tar.gz) = 
VnZk8mJwlHOTCkv55Rvy6/M0jy50jMxQ3qIGRoWPjyk=
-SHA256 (cargo/redox_syscall-0.5.7.tar.gz) = 
m23+zyx0vOJGbKv5P2Zk1pmKaesh459CB5MAZbJ7dx8=
+SHA256 (cargo/redox_syscall-0.5.8.tar.gz) = 
A6his4n5PmiHT79YC53gjdAvrLmniOutr0o/0zz1iDQ=
  SHA256 (cargo/regex-1.11.1.tar.gz) = 
tUTvG06sXcLbM+pjYGrp/8+sJsFBaigGrgv19WsgEZE=
  SHA256 (cargo/regex-automata-0.1.10.tar.gz) = 
bCMNc/uNjBucCzE1xRQqis7joFWPuNtc8ctl+NeGITI=
  SHA256 (cargo/regex-automata-0.4.9.tar.gz) = 
gJ6Nxh9t5ztGyF9MlkhjEP4wTENM+kNmnXtA9xEVCQg=
@@ -211,13 +211,13 @@ SHA256 (cargo/rustc-hash-1.1.0.tar.gz) = 
CNQ/eqawjUnzgs3mp5ggR8NCbblJsUJLxLfsmuE
  SHA256 (cargo/rusticata-macros-4.1.0.tar.gz) = 
+vDEpuzplQuavbYrHPzypos7Z6ELpEWzu4W+Kik9BjI=
  SHA256 (cargo/rustix-0.38.42.tar.gz) = 
+T3DjsurLreQ/5ZLt3+pT68lb9PnMoX9e6CQO3a+24U=
  SHA256 (cargo/rustls-0.21.12.tar.gz) = 
P1ahTR9Is5E1myL3Mf1L1+Q8l/PFDu4nbzqgnJR4TT4=
-SHA256 (cargo/rustls-0.23.19.tar.gz) = 
k0tARDC7BrP64suoCetFoasa7NZEkSE9fDMBuIOT+NE=
+SHA256 (cargo/rustls-0.23.20.tar.gz) = 
UGXD8lDL0zLNiUvlfED6UjhyR2WbFKLWBB0SFUeQOxs=
  SHA256 (cargo/rustls-native-certs-0.6.3.tar.gz) = 
qarOdMtmZjXJGOnBK8DTSCZgN6qOtZm1y6VlcJqN/wA=
  SHA256 (cargo/rustls-native-certs-0.7.3.tar.gz) = 
5b+zlO7tJC6Qlgn1YInuz+X9oiUELosXF5G5yV9ZMeU=
  SHA256 (cargo/rustls-native-certs-0.8.1.tar.gz) = 
f8/y3VK1io2YpwJDZjoNI0xOK3kjVjeEnRWRM5SiR9M=
  SHA256 (cargo/rustls-pemfile-1.0.4.tar.gz) = 
HHTK4KTPbMu/XzWfCO/fjufh3FMlc78Ntxloy1axRIw=
  SHA256 (cargo/rustls-pemfile-2.2.0.tar.gz) = 
3OMU5f7j85lT1Gu2O7ikbUDC+Pt8xaO2yrK96XIdblA=
-SHA256 (cargo/rustls-pki-types-1.10.0.tar.gz) = 
FvEgGzyafugDm8rcF7fmBeKUWyfu52MXiMG9KwZDZ0s=
+SHA256 (cargo/rustls-pki-types-1.10.1.tar.gz) = 
0r9H5v+SLbOCXrdQxOL/eExv+PueEwRu9qHRxUAbCzc=
  SHA256 (cargo/rustls-webpki-0.101.7.tar.gz) = 
i2J10e56HNeAtkrKdyZZmh28iTseZBRFKeVcPC90V2U=
  SHA256 (cargo/rustls-webpki-0.102.8.tar.gz) = 
ZMobyHSb1M83tc44bMFGWAd3tOhXLHuXuvIsg/REvuk=
  SHA256 (cargo/ryu-1.0.18.tar.gz) = 
88tboNxDJCzhfemcGA6W25CyNbip/clUPJbSIJEWvZ8=
@@ -345,7 +345,7 @@ SHA256 (cargo/zeroize-1.8.1.tar.gz) = 
ztNniih5swMG0yP0VCYmaXpGSpfAoHya6/frymXNTd
  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 
(erebe-fastwebsockets-ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = 
pTk3zyTTSZ0jr2ofJrFT4W3HZ15YwiySddSrPzmd6WY=
-SHA256 (erebe-wstunnel-v10.1.7.tar.gz) = 
fMEWgfd+tQMxEzKZF0FQ7ekp7azzgbsGq3YgU3cLoDs=
+SHA256 (erebe-wstunnel-v10.1.8.tar.gz) = 
ZxfjYdWBA0nNww48544Ig72tPFXCKKdoTcXf+FZBkSQ=
  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
@@ -381,7 +381,7 @@ SIZE (cargo/bollard-stubs-1.45.0-rc.26.0.1.tar.gz) = 
57048
  SIZE (cargo/bumpalo-3.16.0.tar.gz) = 85677
  SIZE (cargo/byteorder-1.5.0.tar.gz) = 23288
  SIZE (cargo/bytes-1.9.0.tar.gz) = 67320
-SIZE (cargo/cc-1.2.3.tar.gz) = 99421
+SIZE (cargo/cc-1.2.4.tar.gz) = 99823
  SIZE (cargo/cexpr-0.6.0.tar.gz) = 17966
  SIZE (cargo/cfg-if-1.0.0.tar.gz) = 7934
  SIZE (cargo/cfg_aliases-0.2.1.tar.gz) = 6355
@@ -546,7 +546,7 @@ SIZE (cargo/rand_chacha-0.3.1.tar.gz) = 15251
  SIZE (cargo/rand_core-0.6.4.tar.gz) = 22666
  SIZE (cargo/rcgen-0.13.1.tar.gz) = 74432
  SIZE (cargo/redox_syscall-0.3.5.tar.gz) = 23404
-SIZE (cargo/redox_syscall-0.5.7.tar.gz) = 26249
+SIZE (cargo/redox_syscall-0.5.8.tar.gz) = 26319
  SIZE (cargo/regex-1.11.1.tar.gz) = 254170
  SIZE (cargo/regex-automata-0.1.10.tar.gz) = 114533
  SIZE (cargo/regex-automata-0.4.9.tar.gz) = 618525
@@ -559,13 +559,13 @@ SIZE (cargo/rustc-hash-1.1.0.tar.gz) = 9331
  SIZE (cargo/rusticata-macros-4.1.0.tar.gz) = 11746
  SIZE (cargo/rustix-0.38.42.tar.gz) = 378683
  SIZE (cargo/rustls-0.21.12.tar.gz) = 285674
-SIZE (cargo/rustls-0.23.19.tar.gz) = 333921
+SIZE (cargo/rustls-0.23.20.tar.gz) = 335933
  SIZE (cargo/rustls-native-certs-0.6.3.tar.gz) = 24438
  SIZE (cargo/rustls-native-certs-0.7.3.tar.gz) = 31564
  SIZE (cargo/rustls-native-certs-0.8.1.tar.gz) = 31129
  SIZE (cargo/rustls-pemfile-1.0.4.tar.gz) = 22092
  SIZE (cargo/rustls-pemfile-2.2.0.tar.gz) = 25849
-SIZE (cargo/rustls-pki-types-1.10.0.tar.gz) = 55134
+SIZE (cargo/rustls-pki-types-1.10.1.tar.gz) = 58944
  SIZE (cargo/rustls-webpki-0.101.7.tar.gz) = 168808
  SIZE (cargo/rustls-webpki-0.102.8.tar.gz) = 204327
  SIZE (cargo/ryu-1.0.18.tar.gz) = 47713
@@ -693,4 +693,4 @@ 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 
(erebe-fastwebsockets-ef904598ec168d7748b28d77ec1803ba721932d8.tar.gz) = 
57473
-SIZE (erebe-wstunnel-v10.1.7.tar.gz) = 281043
+SIZE (erebe-wstunnel-v10.1.8.tar.gz) = 281236