-
Notifications
You must be signed in to change notification settings - Fork 7
Description
I spent several days with github actions trying to compile for mipsel (target: mipsel-unknown-linux-gnu), but unsuccessfully...
With current dependecy list the server build will fail on ring v0.16.20 compilation, which is pulled by rustls v0.20.9 and tokio-rustls v0.23.4. I googled the error, it was probably fixed in ring v0.17. But I couldn't force cargo to use ring v0.17 for rustls v0.20.9 and tokio-rustls v0.23.4. If I update rustls and tokio-rustls to versions where they start to require ring v0.17 as a dependency (v0.21.12 and v0.24.1), then other errors occur, which again prevent the project from building...
UPD.
I tried
cargo update -p ring --precise 0.17.14
I tried adding to privaxy/privaxy/Cargo.toml
[dependencies]
ring = "=0.17.14"
[build-dependencies]
ring = "=0.17.14"
# ring != "0.16.20" <- forbidding doesn't work
[patch.crates-io]
ring = { version = "0.17.14" } <- tell to download specific version
It just warns every time and ignores custom dependency versions that i am adding.
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package: /home/runner/work/privaxy/privaxy/privaxy/Cargo.toml
workspace: /home/runner/work/privaxy/privaxy/Cargo.toml
warning: patch for the non root package will be ignored, specify patch at the workspace root:
package: /home/runner/work/privaxy/privaxy/privaxy/Cargo.toml
workspace: /home/runner/work/privaxy/privaxy/Cargo.toml
Main thing is cargo keeps attempting to download and compile version i forbid it to do so. And fails every time on that damn ring 16.20 package:
Compiling ring v0.16.20
error: failed to run custom build command for `ring v0.16.20`
Error: failed to run custom build command for `ring v0.16.20`
Caused by:
process didn't exit successfully: `/home/runner/work/privaxy/privaxy/target/release/build/ring-3afa836036654a7d/build-script-build` (exit status: 101)
--- stderr
thread 'main' (14917) panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ring-0.16.20/build.rs:358:10:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Error: The process '/home/runner/.cargo/bin/cargo' failed with exit code 101
UPD2.
OK i give up. I had around half hundred failed attempts to build from source in repo i deleted 2 months ago, and now it's CI#36 - 36th failed build and i give up. I can't fight that cargo shit no more. I tried to specify exact crate versions i want, i tried to forbit crate versions i don't want, i tried forking crates and point cargo to them as dependencies, i tried forking specific crate versions and delete dependencies i don't want for them, i tried editing cargo.lock, i tried deleting cargo.lock, and nothing. Nothing. "That crate version is yanked", "Patches must point to different sources" and so on, one error after another. And eventually cargo is downloading and compiling dependency version that i forbidden it to do. That is hillarious.
Please if someone more experienced or not so crooked handed like me sees this, please make privaxy build for mipsel devices (apt-get install -y gcc-mipsel-linux-gnu g++-mipsel-linux-gnu && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu). The reason why i spent so much effort on this is in dynamic advertising. It's everywhere, and i can't stand it any more. DNS blocking methods, all kinds of DNS-Blackhole, do not work on it. The only option is to have something like Privaxy (privoxy, etc, anything) installed on a router. Anyway, let me know if you were lucky.