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

Issues building for void-linux #7958

Closed
shizonic opened this issue Oct 13, 2020 · 17 comments
Closed

Issues building for void-linux #7958

shizonic opened this issue Oct 13, 2020 · 17 comments
Labels
build build system or continuous integration related

Comments

@shizonic
Copy link

After unpacking a release tarball (e.g. 1.4.6) the third_party folder is empty. Guess the step https://github.com/denoland/deno/blob/master/.github/workflows/ci.yml#L61 needs to be updated...

@lucacasonato lucacasonato added bug Something isn't working correctly build build system or continuous integration related labels Oct 13, 2020
@lucacasonato
Copy link
Member

lucacasonato commented Oct 13, 2020

Actually, why do you want the third_party folder? It shouldn't be required for building Deno.

@lucacasonato lucacasonato added suggestion suggestions for new features (yet to be agreed) and removed bug Something isn't working correctly labels Oct 13, 2020
@shizonic
Copy link
Author

In this case I don't need it. Thought it is required because my build always failes.

Background: Try to package it for the Void linux distribution.

May you help me whats going wrong? Here is the Travis CI build log: https://travis-ci.org/github/void-linux/void-packages/builds/735400951

@lucacasonato
Copy link
Member

lucacasonato commented Oct 13, 2020

I think this distro only ships with musl right? Deno requires glibc right now. See #3711

Also Deno does not support i686.

@shizonic
Copy link
Author

Not it ships with glibc too! This isn't the problem becsuse I can skip the musl builds. But it even doesn't build on glibc.

@lucacasonato
Copy link
Member

The minimum supported rust version is 1.46.0. It seems your release is older. Also you need a very recent version of clang: https://github.com/denoland/rusty_v8#build-v8-from-source

@shizonic
Copy link
Author

Oh okay this may be the cause. I will give it a try. Thanks for your help!

@shizonic
Copy link
Author

shizonic commented Oct 13, 2020

As far as I see void

The minimum supported rust version is 1.46.0.

Where did you see that? As far as I see Voidlinux uses version 1.46.0: https://github.com/void-linux/void-packages/blob/master/srcpkgs/rust/template#L7

Also you need a very recent version of clang.

LLVM 10.0 works too, right? (https://github.com/void-linux/void-packages/blob/master/srcpkgs/llvm/template#L3)

@lucacasonato
Copy link
Member

LLVM 10.0 works too, right? (https://github.com/void-linux/void-packages/blob/master/srcpkgs/llvm/template#L3)

LLVM is a compiler backend, and not the same as something like gcc or clang (which is the compiler frontend that parses c / c++ and translates it LLVM IR). rusty_v8 hasnt been built with anything other than recent clang for a long time, so anything else (like gcc) likely won't work.

@piscisaureus
Copy link
Member

Note that rusty_v8 will actually download clang automatically so it should "just work".
But we don't test on void-linux so I'm sure there will be some surprises.

@shizonic
Copy link
Author

Thanks @lucacasonato and @piscisaureus for your great explanations and help. I really appreciate it!

Actually I guess the problem has something to do with gn because of this error log:

Caused by:

  process didn't exit successfully: `/builddir/deno-1.4.6/target/release/build/rusty_v8-4793fc38ad031d22/build-script-build` (exit code: 101)

  --- stdout

  Downloading https://github.com/denoland/ninja_gn_binaries/archive/20200827.tar.gz... Done.

  using Chromiums clang

  clang_base_path /builddir/deno-1.4.6/target/release/clang

  Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-llvmorg-12-init-4187-g33ce275f-1.tgz .......... Done.

  The current directory is /root/hostdir/cargo/registry/src/git.luolix.top-1285ae84e5963aae/rusty_v8-0.11.0

  gn gen --root=/host/cargo/registry/src/git.luolix.top-1285ae84e5963aae/rusty_v8-0.11.0 /builddir/deno-1.4.6/target/release/gn_out

  running: "/builddir/deno-1.4.6/target/release/ninja_gn_binaries-20200827/linux64/gn" "--root=/host/cargo/registry/src/git.luolix.top-1285ae84e5963aae/rusty_v8-0.11.0" "gen" "/builddir/deno-1.4.6/target/release/gn_out" "--args=is_debug=false v8_enable_handle_zapping=false clang_base_path=\"/builddir/deno-1.4.6/target/release/clang\" cc_wrapper=\"/usr/bin/ccache\""



  --- stderr

  thread 'main' panicked at '

  failed to execute command: No such file or directory (os error 2)

  is `gn gen` not installed?

I gonna investigate further. Love deno and want it be packaged on Voidlinux.

@kitsonk kitsonk changed the title third_party submodule isn't included in release tarball Issues building for void-linux Oct 13, 2020
@piscisaureus
Copy link
Member

gn should also be automatically installed though.

I wonder if you’re on a 32 bit system. We don’t support 32 bit builds.

@shizonic
Copy link
Author

gn should also be automatically installed though.

hmm okay

I wonder if you’re on a 32 bit system. We don’t support 32 bit builds.

Voidlinux supports many archs: x86_64, i686, aarch64, armv7l, armv6l and all for glibc and musl libc. I can't build deno on any... even x86_64 glibc. Have a look at: https://travis-ci.org/github/void-linux/void-packages/builds/735400951

@piscisaureus
Copy link
Member

Gn is typically downloaded by the cargo_gn crate somewhere into the build directory.
You can bring your own, but then you need to set the GN environment variable to point at it.
We download it from here btw - https://github.com/denoland/ninja_gn_binaries/tags

@shizonic
Copy link
Author

Gn is typically downloaded by the cargo_gn crate somewhere into the build directory.
You can bring your own, but then you need to set the GN environment variable to point at it.
We download it from here btw - https://github.com/denoland/ninja_gn_binaries/tags

Oh okay I used https://gn.googlesource.com/gn

@lucacasonato lucacasonato removed the suggestion suggestions for new features (yet to be agreed) label Oct 14, 2020
@shizonic
Copy link
Author

How can I prevent fetching precompiled binaries during build process? See: void-linux/void-packages#22043 (comment) and void-linux/void-packages#25436 (comment)

@notramo
Copy link

notramo commented Sep 27, 2023

Any progress on this?

@lucacasonato
Copy link
Member

There is nothing actionable here. If you are still struggling with building Deno from source, please open a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build build system or continuous integration related
Projects
None yet
Development

No branches or pull requests

4 participants