knazarov / homebrew-qemu-virgl

A homebrew tap for qemu with support for 3d accelerated guests
415 stars 68 forks source link

Apple Silicon M1 - Bootstrap from scratch for mac-amd64 failed #9

Closed volisoft closed 3 years ago

volisoft commented 3 years ago

System info macOS BigSur version 11.2.3 MacBook Air (M1, 2020) Chip Apple M1 Memory 8 GB

brew --version Homebrew 3.0.11 Homebrew/homebrew-core (git revision a0da6ef822; last commit 2021-04-07) Homebrew/homebrew-cask (git revision 26974ab51f; last commit 2021-04-07)

Failed command brew install knazarov/qemu-virgl/qemu-virgl

Error message

scripts/bootstrap.py

CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch...
/private/tmp/libangle--depot_tools-20210406-34808-manlz5/cipd: line 215: /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_client: Bad CPU type in executable
Bootstrap from scratch for mac-amd64 failed! Run the following commands to diagnose if this is repeating:
  export CIPD_HTTP_USER_AGENT_PREFIX=depot_tools/51eac66a56d972de2b4f723a4c479e0f8cbb0524/manual
  /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_client selfupdate -version-file /private/tmp/libangle--depot_tools-20210406-34808-manlz5/cipd_client_version
CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch...
/private/tmp/libangle--depot_tools-20210406-34808-manlz5/cipd: line 215: /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_client: Bad CPU type in executable
Bootstrap from scratch for mac-amd64 failed! Run the following commands to diagnose if this is repeating:
  export CIPD_HTTP_USER_AGENT_PREFIX=depot_tools/51eac66a56d972de2b4f723a4c479e0f8cbb0524/manual
  /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_client selfupdate -version-file /private/tmp/libangle--depot_tools-20210406-34808-manlz5/cipd_client_version
/private/tmp/libangle--depot_tools-20210406-34808-manlz5/vpython3: line 52: /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_bin/vpython3: No such file or directory
/private/tmp/libangle--depot_tools-20210406-34808-manlz5/vpython3: line 52: exec: /private/tmp/libangle--depot_tools-20210406-34808-manlz5/.cipd_bin/vpython3: cannot execute: No such file or directory
failed command: "gclient config --name change2dot --unmanaged https://chromium.googlesource.com/angle/angle.git"
knazarov commented 3 years ago

Hi @volisoft, the bootstrap.sh script doesn’t work with system integrity protection on. This is a problem on Big Sur, that guys from google try to solve right now. I don’t have a link to the ticket, but trust me on this.

That’s why I pre-built the libangle as a binary bottle, so your brew install can work without disabling system integrity protection.

If you want to build it yourself, you need to disable the system integrity protection, and add '--args=target_cpu="arm64"' to gn gen in libangle.rb (I’ve just forgot to do it).

I won’t have access to my computer for about 10 days, so I won’t be able to fix the target_cpu parameter for the time being.

volisoft commented 3 years ago

Hi @knazarov, Thank you for your reply. Actually, this is the error I get by running brew install knazarov/qemu-virgl/qemu-virgl. I guess I'm doing something wrong, but could you please point me to the right command to install your distribution without building it myself? I will be glad to provide additional information that you might need to help with troubleshooting this error. Thank you in advance.

hexdump0815 commented 3 years ago

@volisoft - maybe this helps: https://github.com/knazarov/homebrew-qemu-virgl/issues/4#issuecomment-806062595good luck and best wishes - hexdump

knazarov commented 3 years ago

@volisoft Try doing brew tap --force-auto-update knazarov/qemu-virgl and then re-trying the installation. It should fetch the binary release.

knazarov commented 3 years ago

@volisoft could you please re-try the latest version?

volisoft commented 3 years ago

Running brew install knazarov/qemu-virgl/qemu-virgl after brew update/upgrade fails with the error reported in the original post. The same is for brew tap --force-auto-update knazarov/qemu-virgl && brew install knazarov/qemu-virgl/qemu-virgl.

...
CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch...
/private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/cipd: line 215: /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_client: Bad CPU type in executable
Bootstrap from scratch for mac-amd64 failed! Run the following commands to diagnose if this is repeating:
  export CIPD_HTTP_USER_AGENT_PREFIX=depot_tools/efd29f6f5c4ce52cec970b00348a064e608512a7/manual
  /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_client selfupdate -version-file /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/cipd_client_version
CIPD selfupdate failed. Trying to bootstrap the CIPD client from scratch...
/private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/cipd: line 215: /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_client: Bad CPU type in executable
Bootstrap from scratch for mac-amd64 failed! Run the following commands to diagnose if this is repeating:
  export CIPD_HTTP_USER_AGENT_PREFIX=depot_tools/efd29f6f5c4ce52cec970b00348a064e608512a7/manual
  /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_client selfupdate -version-file /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/cipd_client_version
/private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/vpython3: line 52: /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_bin/vpython3: No such file or directory
/private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/vpython3: line 52: exec: /private/tmp/libangle--depot_tools-20210417-68787-1kh30s8/.cipd_bin/vpython3: cannot execute: No such file or directory
failed command: "gclient config --name change2dot --unmanaged https://chromium.googlesource.com/angle/angle.git"
raffaelepojer commented 3 years ago

Same here, after running brew install knazarov/qemu-virgl/qemu-virgl it returns this:

...
==> python2 scripts/bootstrap.py
==> gclient sync
==> gn gen --args=use_custom_libcxx=false target_cpu="arm64" ./angle_build
Last 15 lines from /Users/raffaele/Library/Logs/Homebrew/libangle/03.gn:
  File "/private/tmp/libangle-20210420-36578-1robh3b/build/config/apple/sdk_info.py", line 72, in FillXcodeVersion
    '-version']).decode('UTF-8').splitlines()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 223, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['xcodebuild', '-version']' returned non-zero exit status 1

See //build/config/sysroot.gni:71:5: whence it was imported.
    import("//build/config/mac/mac_sdk.gni")
    ^--------------------------------------
See //build/config/linux/pkg_config.gni:5:1: whence it was imported.
import("//build/config/sysroot.gni")
^----------------------------------
See //BUILD.gn:8:3: whence it was imported.
  import("//build/config/linux/pkg_config.gni")
  ^-------------------------------------------

Do not report this issue to Homebrew/brew or Homebrew/core!
knazarov commented 3 years ago

@raffaelepojer what does xcodebuild -version show for you?

raffaelepojer commented 3 years ago

@raffaelepojer what does xcodebuild -version show for you? If I run xcodebuild -version I get this:

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

knazarov commented 3 years ago

@raffaelepojer please see the fix here: https://github.com/nodejs/node-gyp/issues/569

Let me know if it helps

knazarov commented 3 years ago

By the way, I’ve fixed the cpu architecture problem. Should be fine now.

knazarov commented 3 years ago

@raffaelepojer what does xcodebuild -version show for you? If I run xcodebuild -version I get this:

xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

I can confirm that this is because of latest macos/xcode updates. To build qemu you need a full version of xcode, and not just command line tools (not sure why, libangle requires them). So, download xcode and install it, then do xcode-select to select the version you downloaded.

The bug that led to x86 binaries being built for arm is fixed now as well.

As for the requirement to have system integrity protection disabled in some cases - that’s due to a problem in google tools and should be fixed now as well.