Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Solaris and remove i386 builds #205

Merged
merged 1 commit into from
Mar 19, 2024

Conversation

cipherboy
Copy link
Member

@cipherboy cipherboy commented Mar 12, 2024

Red Hat all but has dropped support for 32-bit hardware back with
RHEL 8, with many other distros following suit.

We fixed support for Solaris temporarily by removing the dependency of
the final binary on Docker. This occurred as imports previously in a
test-only package landed in a non-test package (despite only being used
in tests), causing the unnecessary import.

See also: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.4_release_notes/deprecated_functionality

@cipherboy cipherboy marked this pull request as ready for review March 12, 2024 23:02
@siepkes
Copy link
Contributor

siepkes commented Mar 14, 2024

Objection, Your honor! 😉

In all seriousness, I use the "Solaris" build on illumos. illumos is the opensource continuation of OpenSolaris after Oracle re-closed the source of Solaris. illumos is maintained by a lot of old Sun folk who previously worked on Solaris but also by a lot of new blood. illumos is the basis for example for Triton Datacenter and Oxide's product.

Go also supports illumos as a goos build tag. While I can understand not wanting to invest time in Oracle's proprietary Solaris version I would like to make a case for keeping illumos included.

If you need any help on illumos specific issues you can also reach out to me.

@cipherboy cipherboy marked this pull request as draft March 14, 2024 12:36
@cipherboy
Copy link
Member Author

cipherboy commented Mar 14, 2024

@siepkes said:

Objection, Your honor! 😉

I think this is as valid of a reason to keep it as any ;-)

But the reason for removal wasn't that it was working -- it wasn't! :D

Check out the latest build failures:

**Run make ci-build**
--> Building OpenBao revision 8f3383735c9db25688c42d51a917967b48029c2a, built 2024-03-13T20:21:54Z
~/work/openbao/openbao ~/work/openbao/openbao
+ go build -v -tags '' -ldflags ' -X github.com/openbao/openbao/version.GitCommit=8f3383735c9db25688c42d51a917967b48029c2a -X github.com/openbao/openbao/version.BuildDate=2024-03-13T20:21:54Z' -o dist/bao
internal/goarch
internal/unsafeheader
internal/coverage/rtcov
internal/godebugs
internal/goexperiment
... SNIP ...
github.com/docker/docker/pkg/pools
github.com/docker/go-connections/sockets
github.com/docker/docker/pkg/meminfo
github.com/docker/docker/pkg/system
text/scanner
# github.com/docker/docker/pkg/system
Error: ../../../go/pkg/mod/github.com/docker/docker@v24.0.7+incompatible/pkg/system/lstat_unix.go:20:9: undefined: fromStatT
Error: ../../../go/pkg/mod/github.com/docker/docker@v24.0.7+incompatible/pkg/system/stat_unix.go:66:9: undefined: fromStatT
github.com/moby/sys/sequential
github.com/docker/docker/pkg/stdcopy
github.com/michaelklishin/rabbit-hole/v2
github.com/docker/docker/client
github.com/moby/patternmatcher
github.com/openbao/openbao/builtin/logical/totp

This only appears to occur on Solaris, because it lacks a fromStatT definition in Docker.

Now, what is weird is back on 50d31a1, the pipeline passed and Docker built fine. In 5fa3d9a was where the first build failure was with Solaris. While admittedly, we could use a go mod tidy on main, I don't see what in this commit could've caused that -- it is strictly a bunch of removals.

Anyhow, I'll mark this one as draft and if you can fix Solaris, we'll keep it :D If you get ambitious, a past project of mine used MacOS runners to get access to virtualization to be able to run arbitrary guest OSes, so you could install Solaris and run the test suite against it for us...

Let me know!

@siepkes
Copy link
Contributor

siepkes commented Mar 14, 2024

I think the best way to solve this is to simply fix this upstream (in the Go docker package). By simply implementing stat_illumos.go in https://github.com/moby/moby/tree/master/pkg/system. The only hurdle is to get upstream to accept it and then to wait for a release. Would such a solution work for you?

@cipherboy
Copy link
Member Author

@siepkes Yes, that sounds good to me!

@siepkes
Copy link
Contributor

siepkes commented Mar 14, 2024

Great! I'll get started on it!

@cipherboy cipherboy changed the title Remove Solaris and i386 builds Fix Solaris and remove i386 builds Mar 14, 2024
@cipherboy cipherboy marked this pull request as ready for review March 14, 2024 15:50
@naphelps naphelps self-requested a review March 18, 2024 13:23
Red Hat all but has dropped support for 32-bit hardware back with
RHEL 8, with many other distros following suit.

We fixed support for Solaris temporarily by removing the dependency of
the final binary on Docker. This occurred as imports previously in a
test-only package landed in a non-test package (despite only being used
in tests), causing the unnecessary import.

See also: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.4_release_notes/deprecated_functionality

Signed-off-by: Alexander Scheel <alexander.m.scheel@gmail.com>
@naphelps naphelps merged commit ddec2b4 into openbao:main Mar 19, 2024
71 of 73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants