Hacker News new | ask | show | jobs
by josephg 1865 days ago
That looks like a pretty simple problem. Deno probably doesn’t work on FreeBSD simply because nobody has done the work of making it compatible yet. Rust, V8 and nodejs all run great on FreeBSD.

If you care about FreeBSD support, I bet the community would be delighted to receive some pull requests patching the problem.

1 comments

I gave it a whirl:

  > git clone https://github.com/denoland/deno.git denoland/deno
  > git clone https://github.com/denoland/rusty_v8.git denoland/rusty_v8
  > cd denoland/deno
  > vi Cargo.toml

  ...
  [patch.crates-io]
  rusty_v8 = { path = "../rusty_v8" }
  ...

  > cargo build --release
  ... as expected same failure - good ...
Make rusty_v8 build.rs aware of freebsd

  > vi ../rusty_v8/build.rs

  ...
  #[cfg(target_os = "freebsd")]
  {
    "freebsd"
  }
  ...
Have a quick squizz to see where this is used:

  > rg "platform\(\)" ../rusty_v8

  build.rs
  157:fn platform() -> &'static str {
  180:    .join(platform());

Attempt to fix... and bang! It's using the platform() result to call a python script that pulls binaries from here:

https://github.com/denoland/ninja_gn_binaries/

And there's no FreeBSD build there. To much yak shaving for idle curiosity on my part.

Hm. Looks like gn refers to: https://gn.googlesource.com/gn

Guessing it is inspired by v8/chrome build system? Maybe have a look at nodejs for freeBSD for inspiration? Or just provide ninja/gn some other way.

Little sad to see a build process import binaries from the net either way...