bine icon indicating copy to clipboard operation
bine copied to clipboard

update dependencies

Open starius opened this issue 4 months ago • 6 comments

Updated Go to 1.23 and the packages used to recent versions.

starius avatar Aug 24 '25 20:08 starius

Thanks! I no longer really work on this repository, but I can merge this. Can you confirm the output of running all of the unit tests?

cretz avatar Aug 25 '25 12:08 cretz

I failed to build embedded tor and I don't need that mode, so I skipped testing it.

Maybe you know why this may happen when building tor-static?

tor-static$ go run build.go build-all
2025/08/25 22:42:56 *** Building all ***
2025/08/25 22:42:56 *** Building openssl ***
2025/08/25 22:42:56 Running in folder openssl: sh ./config --prefix=/home/user/tor-static/openssl/dist --openssldir=/home/user/tor-static/openssl/dist no-shared no-dso no-zlib
2025/08/25 22:42:56 *** Done building openssl ***
2025/08/25 22:42:56 *** Done building all ***
2025/08/25 22:42:56 exit status 127
exit status 1

(It's a Debian machine with compilers installed.)

So I tested everything else:

$ go test -v ./control/... ./tests/... ./tor/... ./torutil/...

?   	github.com/cretz/bine/control	[no test files]
=== RUN   TestAuthenticateNull
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateNull (0.00s)
=== RUN   TestAuthenticateSafeCookie
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateSafeCookie (0.00s)
=== RUN   TestAuthenticateHashedPassword
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateHashedPassword (0.00s)
=== RUN   TestGetSetAndResetConf
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestGetSetAndResetConf (0.00s)
=== RUN   TestLoadConf
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestLoadConf (0.00s)
=== RUN   TestSaveConf
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestSaveConf (0.00s)
=== RUN   TestHSFetch
    context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestHSFetch (0.00s)
=== RUN   TestSignal
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestSignal (0.00s)
=== RUN   TestProtocolInfo
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestProtocolInfo (0.00s)
=== RUN   TestDialerSimpleHTTP
    context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestDialerSimpleHTTP (0.00s)
=== RUN   TestForwardSimpleHTTP
    context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestForwardSimpleHTTP (0.00s)
=== RUN   TestEmbeddedGeoIPFile
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestEmbeddedGeoIPFile (0.00s)
=== RUN   TestIsolateSocksAuth
    context_test.go:63: Only runs if -tor is set
--- SKIP: TestIsolateSocksAuth (0.00s)
=== RUN   TestListenSimpleHTTPV3
    context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestListenSimpleHTTPV3 (0.00s)
PASS
ok  	github.com/cretz/bine/tests	(cached)
?   	github.com/cretz/bine/tor	[no test files]
=== RUN   TestOnionServiceIDFromPrivateKey
--- PASS: TestOnionServiceIDFromPrivateKey (0.08s)
=== RUN   TestOnionServiceIDFromPublicKey
--- PASS: TestOnionServiceIDFromPublicKey (0.15s)
=== RUN   TestOnionServiceIDFromV2PublicKey
--- PASS: TestOnionServiceIDFromV2PublicKey (0.00s)
=== RUN   TestOnionServiceIDFromV3PublicKey
--- PASS: TestOnionServiceIDFromV3PublicKey (0.00s)
=== RUN   TestPartitionString
--- PASS: TestPartitionString (0.00s)
=== RUN   TestPartitionStringFromEnd
--- PASS: TestPartitionStringFromEnd (0.00s)
=== RUN   TestEscapeSimpleQuotedStringIfNeeded
--- PASS: TestEscapeSimpleQuotedStringIfNeeded (0.00s)
=== RUN   TestEscapeSimpleQuotedString
--- PASS: TestEscapeSimpleQuotedString (0.00s)
=== RUN   TestEscapeSimpleQuotedStringContents
--- PASS: TestEscapeSimpleQuotedStringContents (0.00s)
=== RUN   TestUnescapeSimpleQuotedStringIfNeeded
--- PASS: TestUnescapeSimpleQuotedStringIfNeeded (0.00s)
=== RUN   TestUnescapeSimpleQuotedString
--- PASS: TestUnescapeSimpleQuotedString (0.00s)
=== RUN   TestUnescapeSimpleQuotedStringContents
--- PASS: TestUnescapeSimpleQuotedStringContents (0.00s)
PASS
ok  	github.com/cretz/bine/torutil	(cached)
=== RUN   TestUnmarshalMarshal
--- PASS: TestUnmarshalMarshal (0.00s)
=== RUN   TestSignVerify
--- PASS: TestSignVerify (0.00s)
=== RUN   TestCryptoSigner
--- PASS: TestCryptoSigner (0.00s)
=== RUN   TestGolden
--- PASS: TestGolden (0.02s)
=== RUN   TestMalleability
--- PASS: TestMalleability (0.00s)
PASS
ok  	github.com/cretz/bine/torutil/ed25519	(cached)
?   	github.com/cretz/bine/torutil/ed25519/internal/edwards25519	[no test files]
?   	github.com/cretz/bine/torutil/geoipembed	[no test files]

Installed examples, except ones using embedded tor:

bine/examples$ go install ./grpc/ ./httpaltsvc/ ./simpleclient/ ./simpleserver/
bine/examples$

Also I ran all the network tests:

bine/tests]$ go test -c
bine/tests]$ ./tests.test -test.v -tor -tor.network -tor.verbose

Here is the output: https://gist.githubusercontent.com/starius/e5960b46de1a94eda4bde3123dc3fed4/raw/bf378a6ea4fe6fe248c827bab965993dc3eb86a8/gistfile1.txt

Note that one tests is failing:

Unique IDs without isolate: map[9:{} 11:{}]
    tor_isolate_socks_auth_test.go:25: 
        	Error Trace:	/home/user/bine/tests/tor_isolate_socks_auth_test.go:25
        	Error:      	"map[9:{} 11:{}]" should have 1 item(s), but has 2
        	Test:       	TestIsolateSocksAuth
--- FAIL: TestIsolateSocksAuth (23.89s)

I checked master branch - it fails in it as well. Maybe some bug in my Tor version (0.4.8.16)?

starius avatar Aug 26 '25 02:08 starius

Unsure to be honest, I'd have to spend time debugging, but I have effectively abandoned work on this project.

cretz avatar Aug 26 '25 13:08 cretz

I can dig deeper into it on the weekend. Let's keep it open for now.

starius avatar Aug 27 '25 02:08 starius

@starius Note that this means that users must have at least go 1.23.0 installed to build bine, which is probably too strict, yes?

- go 1.15
+ go 1.23.0

elimisteve avatar Aug 30 '25 18:08 elimisteve

@elimisteve This Go version is needed to bump the dependencies.

Note that even Go 1.23 has stopped receiving security updated from Go team via minor releases. The actual versions are 1.24 and 1.25 now.

Minor releases to address problems (including security issues) for Go 1.x stop once Go 1.x+2 is released.

From https://go.dev/wiki/Go-Release-Cycle

starius avatar Aug 30 '25 22:08 starius