[GH-ISSUE #2065] Update ring to support s390x and ppc64el #867

Closed
opened 2026-03-16 00:39:16 +03:00 by kerem · 12 comments
Owner

Originally created by @williamdes on GitHub (Oct 15, 2023).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/2065

Describe the bug

330.8 Caused by:
330.8   process didn't exit successfully: `/workspace/target/release/build/ring-19b5bed6943ef0b1/build-script-build` (exit status: 101)
330.8   --- stderr
330.8   thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /root/.cargo/registry/src/index.crates.io-d11c229612889eed/ring-0.16.20/build.rs:358:10
330.8   note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
330.8 warning: build failed, waiting for other jobs to finish...

Solution: bump the ring dependency

To Reproduce

https://github.com/hickory-dns/docker/actions/runs/6523798475/job/17714793002#step:5:872

Expected behavior

No failure

System:

  • OS: Alpine
  • Version 0.24
  • rustc version: 1.71

Additional context
There is upstream issues about that, they seem closed and the problem fixed

Originally created by @williamdes on GitHub (Oct 15, 2023). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/2065 **Describe the bug** ``` 330.8 Caused by: 330.8 process didn't exit successfully: `/workspace/target/release/build/ring-19b5bed6943ef0b1/build-script-build` (exit status: 101) 330.8 --- stderr 330.8 thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /root/.cargo/registry/src/index.crates.io-d11c229612889eed/ring-0.16.20/build.rs:358:10 330.8 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace 330.8 warning: build failed, waiting for other jobs to finish... ``` Solution: bump the ring dependency **To Reproduce** https://github.com/hickory-dns/docker/actions/runs/6523798475/job/17714793002#step:5:872 **Expected behavior** No failure **System:** - OS: Alpine - Version 0.24 - rustc version: 1.71 **Additional context** There is upstream issues about that, they seem closed and the problem fixed
kerem closed this issue 2026-03-16 00:39:21 +03:00
Author
Owner

@djc commented on GitHub (Oct 15, 2023):

Do you mean this is a regression, or are you trying to expand platform support? For now, ring 0.17 has been merged on rustls main but there's only an alpha release (which contains a bunch of other API changes).

<!-- gh-comment-id:1763410198 --> @djc commented on GitHub (Oct 15, 2023): Do you mean this is a regression, or are you trying to expand platform support? For now, ring 0.17 has been merged on rustls main but there's only an alpha release (which contains a bunch of other API changes).
Author
Owner

@williamdes commented on GitHub (Oct 15, 2023):

Do you mean this is a regression, or are you trying to expand platform support? For now, ring 0.17 has been merged on rustls main but there's only an alpha release (which contains a bunch of other API changes).

I can not say it's a regression because I did not build multi arch before. More about being full multi platform

<!-- gh-comment-id:1763416939 --> @williamdes commented on GitHub (Oct 15, 2023): > Do you mean this is a regression, or are you trying to expand platform support? For now, ring 0.17 has been merged on rustls main but there's only an alpha release (which contains a bunch of other API changes). I can not say it's a regression because I did not build multi arch before. More about being full multi platform
Author
Owner

@bluejekyll commented on GitHub (Oct 15, 2023):

An option would be to possibly use OpenSSL on those platforms, though that will disallow all of the rustls use cases, like DoH & DoQ as we currently don't have a non-ring based option for those right now.

That being said, it seems like this should be a request on the ring project, right?

Here's an issue discussing performance there: https://github.com/briansmith/ring/issues/1678

<!-- gh-comment-id:1763446500 --> @bluejekyll commented on GitHub (Oct 15, 2023): An option would be to possibly use OpenSSL on those platforms, though that will disallow all of the rustls use cases, like DoH & DoQ as we currently don't have a non-ring based option for those right now. That being said, it seems like this should be a request on the ring project, right? Here's an issue discussing performance there: https://github.com/briansmith/ring/issues/1678
Author
Owner

@djc commented on GitHub (Oct 15, 2023):

The point is that ring 0.17 just added support for these platforms, but there's no GA rustls release with ring 0.17 support yet.

<!-- gh-comment-id:1763451543 --> @djc commented on GitHub (Oct 15, 2023): The point is that ring 0.17 just added support for these platforms, but there's no GA rustls release with ring 0.17 support yet.
Author
Owner

@briansmith commented on GitHub (Oct 15, 2023):

Here's an issue discussing performance there: https://github.com/briansmith/ring/issues/1678

s390x and ppc64el are going to be fast enough where the fallback implementations will be fine. They are slow in ring's CI because they're being tested in the QEMU emulator. OpenSSL has assembly language implementations of primitives for those platforms which you can use if you trust that code.

<!-- gh-comment-id:1763485008 --> @briansmith commented on GitHub (Oct 15, 2023): > Here's an issue discussing performance there: https://github.com/briansmith/ring/issues/1678 s390x and ppc64el are going to be fast enough where the fallback implementations will be fine. They are slow in *ring*'s CI because they're being tested in the QEMU emulator. OpenSSL has assembly language implementations of primitives for those platforms which you can use if you trust that code.
Author
Owner

@williamdes commented on GitHub (Oct 16, 2023):

That being said, it seems like this should be a request on the ring project, right?

I searched issues upstream and it seems they fixed everything
We are not up to date so I can not open a request or I will get thrown out 😄
We can re evaluate this when ring is updated.

That's okay not to support both platforms for now, not much users on them.
And if anyone needs a real s390x I have a VM at IBM

<!-- gh-comment-id:1764078892 --> @williamdes commented on GitHub (Oct 16, 2023): > That being said, it seems like this should be a request on the ring project, right? I searched issues upstream and it seems they fixed everything We are not up to date so I can not open a request or I will get thrown out 😄 We can re evaluate this when ring is updated. That's okay not to support both platforms for now, not much users on them. And if anyone needs a real s390x I have a VM at IBM
Author
Owner

@briansmith commented on GitHub (Nov 13, 2023):

@williamdes Can you try the latest version on the main branch? PR #2076 bumped ring to 0.17.

<!-- gh-comment-id:1809163479 --> @briansmith commented on GitHub (Nov 13, 2023): @williamdes Can you try the latest version on the main branch? PR #2076 bumped *ring* to 0.17.
Author
Owner

@briansmith commented on GitHub (Nov 13, 2023):

The point is that ring 0.17 just added support for these platforms, but there's no GA rustls release with ring 0.17 support yet.

Rustls 0.21 uses ring 0.17 since 0.21.8; see https://github.com/rustls/rustls/releases/tag/v%2F0.21.8. Since hickory-dns uses Rustls 0.21 then you can cargo update -p rustls and this should give you Rustls 0.21.8 that uses ring 0.17.

<!-- gh-comment-id:1809167656 --> @briansmith commented on GitHub (Nov 13, 2023): > The point is that ring 0.17 just added support for these platforms, but there's no GA rustls release with ring 0.17 support yet. Rustls 0.21 uses *ring* 0.17 since 0.21.8; see https://github.com/rustls/rustls/releases/tag/v%2F0.21.8. Since hickory-dns uses Rustls 0.21 then you can `cargo update -p rustls` and this should give you Rustls 0.21.8 that uses *ring* 0.17.
Author
Owner

@djc commented on GitHub (Nov 13, 2023):

You'll probably need to disable DoQ, since Quinn still relies on ring 0.16 for now.

<!-- gh-comment-id:1809189828 --> @djc commented on GitHub (Nov 13, 2023): You'll probably need to disable DoQ, since Quinn still relies on *ring* 0.16 for now.
Author
Owner

@williamdes commented on GitHub (Nov 14, 2023):

@williamdes Can you try the latest version on the main branch? PR #2076 bumped ring to 0.17.

Thank you for the ping, I will try to do it in some following weeks

<!-- gh-comment-id:1810380124 --> @williamdes commented on GitHub (Nov 14, 2023): > @williamdes Can you try the latest version on the main branch? PR #2076 bumped _ring_ to 0.17. Thank you for the ping, I will try to do it in some following weeks
Author
Owner

@williamdes commented on GitHub (Nov 26, 2023):

Thank you @briansmith !
All platforms build !

See: https://github.com/hickory-dns/docker/actions/runs/6996995774/job/19033474459

<!-- gh-comment-id:1826884832 --> @williamdes commented on GitHub (Nov 26, 2023): Thank you @briansmith ! All platforms build ! See: https://github.com/hickory-dns/docker/actions/runs/6996995774/job/19033474459
Author
Owner

@williamdes commented on GitHub (Jan 29, 2024):

I am closing this issue, everything seems to be resolved. The multi arch Docker image is pushed to the hub now 🎉
See: https://github.com/hickory-dns/docker/releases/tag/v0.23.0-1

<!-- gh-comment-id:1914457092 --> @williamdes commented on GitHub (Jan 29, 2024): I am closing this issue, everything seems to be resolved. The multi arch Docker image is pushed to the hub now 🎉 See: https://github.com/hickory-dns/docker/releases/tag/v0.23.0-1
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#867
No description provided.