plugins icon indicating copy to clipboard operation
plugins copied to clipboard

os-shadowsocks uses deprecated FreeBSD port shadowsocks-libev instead of using current shadowsocks-rust

Open eguun opened this issue 8 months ago • 10 comments

Important notices Before you add a new report, we ask you kindly to acknowledge the following:

  • [x] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
  • [x] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
  • [x] The title contains the plugin to which this issue belongs

Describe the bug shadowsocks-libev as part of OPNsense is deprecated and uses deprecated dependencies: pcre-8.45_4 mbedtls-2.28.9

To Reproduce Steps to reproduce the behavior:

  1. Go to 'System > Firmware > Plugins'
  2. Click on 'os-shadowsocks' to install the plugin
  3. See install log stating the plugin itself being abandonware and the packages dependencies as deprecated

Expected behavior Expected to have a os-shadowsocks that is the current FreeBSD port: https://www.freshports.org/net/shadowsocks-rust/ Instead the os-shadowsocks featured in OPNsense is the deprecated FreeBSD port: https://www.freshports.org/net/shadowsocks-libev/

Screenshots If applicable, add screenshots to help explain your problem.

Relevant log files Full install log from OPNsense web GUI below

***GOT REQUEST TO INSTALL***
Currently running OPNsense 25.1.5_5 (aarch64) at Sun Apr 27 20:39:23 CEST 2025
Updating OPNsense repository catalogue...
OPNsense repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	c-ares: 1.34.4
	libev: 4.33_1,1
	mbedtls: 2.28.9
	os-shadowsocks: 1.1
	pcre: 8.45_4
	shadowsocks-libev: 3.3.5_3

Number of packages to be installed: 6

The process will require 11 MiB more space.
2 MiB to be downloaded.
[1/6] Fetching libev-4.33_1,1.pkg: .......... done
[2/6] Fetching os-shadowsocks-1.1.pkg: . done
[3/6] Fetching shadowsocks-libev-3.3.5_3.pkg: .......... done
[4/6] Fetching c-ares-1.34.4.pkg: .......... done
[5/6] Fetching pcre-8.45_4.pkg: .......... done
[6/6] Fetching mbedtls-2.28.9.pkg: .......... done
Checking integrity... done (0 conflicting)
[1/6] Installing libev-4.33_1,1...
[1/6] Extracting libev-4.33_1,1: .......... done
[2/6] Installing c-ares-1.34.4...
[2/6] Extracting c-ares-1.34.4: .......... done
[3/6] Installing pcre-8.45_4...
[3/6] Extracting pcre-8.45_4: .......... done
[4/6] Installing mbedtls-2.28.9...
[4/6] Extracting mbedtls-2.28.9: .......... done
[5/6] Installing shadowsocks-libev-3.3.5_3...
[5/6] Extracting shadowsocks-libev-3.3.5_3: .......... done
[6/6] Installing os-shadowsocks-1.1...
[6/6] Extracting os-shadowsocks-1.1: .......... done
Stopping configd...done
Starting configd.
Migrated OPNsense\Shadowsocks\General from 0.0.0 to 1.0.1
Migrated OPNsense\Shadowsocks\Local from 0.0.0 to 1.0.1
Reloading plugin configuration
Configuring system logging...done.
Reloading template OPNsense/Shadowsocks: OK
=====
Message from pcre-8.45_4:

--
===>   NOTICE:

This port is deprecated; you may wish to reconsider installing it:

EOLed by upstream, use devel/pcre2 instead.
=====
Message from mbedtls-2.28.9:

--
===>   NOTICE:

This port is deprecated; you may wish to reconsider installing it:

Upstream support ends at the end of 2024.

It is scheduled to be removed on or after 2024-12-31.
=====
Message from shadowsocks-libev-3.3.5_3:

--
===>   NOTICE:

This port is deprecated; you may wish to reconsider installing it:

Abandonware, no active development. Please migrate to net/shadowsocks-rust.

It is scheduled to be removed on or after 2024-11-30.
Checking integrity... done (0 conflicting)
Nothing to do.
***DONE***

Environment OPNsense 25.1.5_5

eguun avatar Apr 28 '25 19:04 eguun

We need to keep this open, since the plugin still needs to be changed.

fichtner avatar May 14 '25 07:05 fichtner

And here I was thinking the merge was sufficient to call it job done. Thanks @fichtner fo your guidance.

Any further action I should take for this plugin change, or we're now on a trajectory for the new OPNsense version to automatically feature this updated plugin? (and I'll close this at next release)

eguun avatar May 14 '25 08:05 eguun

@eguun I think @mimugmail can pick this up when 25.1.7 hits which offers the new package. Just needs a test that plugin is still working the same, or may need a tiny bit of adaption. So I wouldn't expect the final result before .8 or .9.

fichtner avatar May 14 '25 09:05 fichtner

shadowsocks-rust fails to build on aarch64. There doesn't seem to be an official FreeBSD aarch64 package either.

maurice-w avatar May 21 '25 14:05 maurice-w

@maurice-w want to do a PR or should I add the exception?

fichtner avatar May 21 '25 14:05 fichtner

@fichtner I can do a PR for excluding shadowsocks-rust on aarch64, but what happens when we change the plugin from shadowsocks-libev to shadowsocks-rust? Could we keep using shadowsocks-libev on aarch64 while switching to shadowsocks-rust on amd64 only?

maurice-w avatar May 21 '25 14:05 maurice-w

with a bit of plugin glue we could.. I can take care of that when @mimugmail moves forward with this

fichtner avatar May 21 '25 14:05 fichtner

May have found the underlying issue in the TUN rust crate. Let's see if we can get this fixed.

meh/rust-tun#119

maurice-w avatar May 21 '25 17:05 maurice-w

May have found the underlying issue in the TUN rust crate. Let's see if we can get this fixed.

meh/rust-tun#119

Thanks @fichtner and @maurice-w for this fast deep dive into the root cause & fix proposal.

Pending issues seems all fixed

eguun avatar May 24 '25 16:05 eguun

@eguun shadowsocks-rust indeed updated the dependency in master, but the current release 1.23.4 still uses the broken rust-tun 0.7.19. I'll wait for the next shadowsocks-rust release, then try the aarch64 build again and, if successful, remove the exclusion in opnsense/tools.

maurice-w avatar Jun 12 '25 16:06 maurice-w

Many thanks for your support.

I saw 1.23.5 was freshly released a few hours ago. Hopefully this would work, otherwise, is there some ask I can raise to the maintainers?

On Thu, 12 Jun 2025 at 18:26, Maurice Walker @.***> wrote:

maurice-w left a comment (opnsense/plugins#4662) https://github.com/opnsense/plugins/issues/4662#issuecomment-2967487367

@eguun https://github.com/eguun shadowsocks-rust indeed updated the dependency in master, but the current release 1.23.4 still uses the broken rust-tun 0.7.19. I'll wait for the next shadowsocks-rust release, then try the aarch64 build again and, if successful, remove the exclusion in opnsense/tools.

— Reply to this email directly, view it on GitHub https://github.com/opnsense/plugins/issues/4662#issuecomment-2967487367, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS3DOJ4HSTHP6HFXKLB5GUD3DGS2HAVCNFSM6AAAAAB4BFTRPGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSNRXGQ4DOMZWG4 . You are receiving this because you were mentioned.Message ID: @.***>

eguun avatar Jul 05 '25 08:07 eguun

@eguun You can see on Freshports which version the FreeBSD port uses and which builds are successful. Once an aarch64 package pops up there (probably in a few days), I'll try building it again and, if successful, create a PR to revert the exclusion in OPNsense tools.

Then the plugin itself can be changed by @mimugmail without special considerations for aarch64.

maurice-w avatar Jul 05 '25 09:07 maurice-w

Thank you @maurice-w to walk me through the process. I will monitor the freshport page https://www.freshports.org/net/shadowsocks-rust

eguun avatar Jul 05 '25 15:07 eguun

They manually added the rust-tun patch instead of updating to 1.23.5: freebsd/freebsd-ports@df5c417 Not sure why, maybe just unfortunate timing. But shouldn't matter to us.

@fichtner Could you please sync net/shadowsocks-rust with upstream?

maurice-w avatar Jul 07 '25 00:07 maurice-w

Thanks @fichtner! The shadowsocks-rust aarch64 build was now successful and I created a PR for including it.

maurice-w avatar Jul 11 '25 13:07 maurice-w

Thanks @fichtner! The shadowsocks-rust aarch64 build was now successful and I created a PR for including it.

That's a critical step forward, bravo @maurice-w Looking back on the steps made on this thread to overcome challenges, it's a fantastic collaboration seeing results!

eguun avatar Jul 11 '25 16:07 eguun

It’s a slow moving target but it’s moving. 😉

fichtner avatar Jul 11 '25 16:07 fichtner

FYI,

Since last night, https://www.freshports.org/net/shadowsocks-rust is now featuring an aarch64 version of the plugin

eguun avatar Jul 17 '25 06:07 eguun

if @mimugmail agrees I can make the switch in the package: either only devel or for 25.7. As far as I understand this is a drop-in replacement?

fichtner avatar Jul 17 '25 06:07 fichtner

@eguun The shadowsocks-rust aarch64 package is now available on my repo: https://opnsense-update.walker.earth/FreeBSD:14:aarch64/25.1/latest/All/shadowsocks-rust-1.23.4_2.pkg

maurice-w avatar Jul 17 '25 09:07 maurice-w

if @mimugmail agrees I can make the switch in the package: either only devel or for 25.7. As far as I understand this is a drop-in replacement?

agreed :)

mimugmail avatar Jul 17 '25 09:07 mimugmail

@eguun The shadowsocks-rust aarch64 package is now available on my repo: https://opnsense-update.walker.earth/FreeBSD:14:aarch64/25.1/latest/All/shadowsocks-rust-1.23.4_2.pkg

Many thanks for this quick availability @maurice-w

eguun avatar Jul 17 '25 09:07 eguun

Many thanks @mimugmail @fichtner and @maurice-w for your constant support throughout these 3 months! Great teamwork that contributes to clean the library of OPNsense plugins

eguun avatar Jul 17 '25 10:07 eguun

@eguun no problem. are you going to be using it on amd64 or aarch64?

fichtner avatar Jul 17 '25 10:07 fichtner

@eguun no problem. are you going to be using it on amd64 or aarch64?

I will be using on both architectures, waiting to be visible through the web-UI

eguun avatar Jul 17 '25 10:07 eguun