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

Experiment - Building Rustic, on Haiku #1390

Open
vmlemon opened this issue Dec 21, 2024 · 2 comments
Open

Experiment - Building Rustic, on Haiku #1390

vmlemon opened this issue Dec 21, 2024 · 2 comments
Labels
S-triage Status: Waiting for a maintainer to triage this issue/PR

Comments

@vmlemon
Copy link

vmlemon commented Dec 21, 2024

Whilst I realise that Haiku isn't an officially supported platform, for Rustic, it recently gained a port of Rust 1.83.0 (as part of haikuports/haikuports#11369), and there's a working patch to Tokio (an annexe to tokio-rs/tokio#7002), that can be applied, by crowbarring the following into Rustic's Cargo.toml:

[patch.crates-io]
tokio = { path = "../Tokio7042/tokio" }
[dependencies]

(That's after applying the patch from tokio-rs/tokio#7042, to a local copy of the Tokio repository, TAR-ing it up, and pushing it to a Haiku VM).

With those changes, I can get pretty far, in building, but it seems there's some issues, with the "Heck" library, that seem transient (reported at haikuports/haikuports#11502), and "Hyper-Util" (reported at haikuports/haikuports#11501), which seems to be a dependency of the WebDAV implementation, from what I can gather:

~/rustic> ./build.sh 
   Compiling hyper-util v0.1.10
   Compiling num-iter v0.1.45
   Compiling num-bigint v0.4.6
error[E0599]: no method named `with_interval` found for struct `TcpKeepalive` in the current scope
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-util-0.1.10/src/client/legacy/connect/http.rs:122:12
    |
122 |         ka.with_interval(interval)
    |            ^^^^^^^^^^^^^ method not found in `TcpKeepalive`

error[E0599]: no method named `with_retries` found for struct `TcpKeepalive` in the current scope
   --> /boot/home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-util-0.1.10/src/client/legacy/connect/http.rs:144:12
    |
144 |         ka.with_retries(retries)
    |            ^^^^^^^^^^^^
    |
help: there is a method `with_time` with a similar name
    |
144 |         ka.with_time(retries)
    |            ~~~~~~~~~

For more information about this error, try `rustc --explain E0599`.
error: could not compile `hyper-util` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...

Since I'm far from fluent in Rust, and it's taken quite some effort, to even figure out how to get Rustic to build against a patched version of Haiku, I thought I'd leave this here, to track progress, in case there's any interest, in seeing this become alive.

I assume that, as a workaround, it's not possible to pass in a build flag, to disable the WebDAV/HTTP components, to push things along? :)

@github-actions github-actions bot added the S-triage Status: Waiting for a maintainer to triage this issue/PR label Dec 21, 2024
@Fancy2209
Copy link

This is probably more missing haiku checks in cfg metadata blocks

@vmlemon
Copy link
Author

vmlemon commented Jan 1, 2025

Looks like fixes to Tokio, and Hyper-Util have landed, in their respective master branches, but I'm unsure about when they're going to arrive in new releases, given that there's mutual dependencies involved, from what I can tell.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-triage Status: Waiting for a maintainer to triage this issue/PR
Projects
None yet
Development

No branches or pull requests

2 participants