Skip to content

Privaxy build for mipsel device #18

@Lichtenshtein

Description

@Lichtenshtein

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions