emscripten-core / emsdk

Emscripten SDK
http://emscripten.org
Other
2.92k stars 662 forks source link

emsdk.py failing to extract binaryen #1342

Closed Jillinger closed 5 months ago

Jillinger commented 5 months ago
Unzipping file binaryen-e1.38.31.zip failed due to reason: [WinError 2] The system cannot find the file specified
C:\develop\emsdk>emsdk install binaryen-tag-1.38.31-64bit
Installing tool 'binaryen-tag-1.38.31-64bit'..
Downloading: C:/develop/emsdk/downloads/binaryen-e1.38.31.zip from https://github.com/WebAssembly/binaryen/archive/1.38.31.zip
Unpacking 'C:/develop/emsdk/downloads/binaryen-e1.38.31.zip' to 'C:/develop/emsdk/binaryen/tag-1.38.31'
Unzipping file 'C:/develop/emsdk/downloads/binaryen-e1.38.31.zip' failed due to reason: [WinError 2] The system cannot find the file specified: '\\\\?\\C:\\develop\\emsdk\\binaryen\\unzip_temp\\binaryen-1.38.31\\test\\passes\\extract-function_pass-arg=extract:foo.txt' -> '\\\\?\\C:\\develop\\emsdk\\binaryen\\tag-1.38.31\\test\\passes\\extract-function_pass-arg=extract:foo.txt'
error: installation failed!
sbc100 commented 5 months ago

Can you install the latest sdk OK ? e.g. emsdk install latest?

Jillinger commented 5 months ago
C:\develop\emsdk>emsdk install latest
Resolving SDK alias 'latest' to '3.1.53'
Resolving SDK version '3.1.53' to 'sdk-releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit'
Installing SDK 'sdk-releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit'..
Skipped installing node-16.20.0-64bit, already installed.
Installing tool 'python-3.9.2-nuget-64bit'..
Downloading: C:/develop/emsdk/downloads/python-3.9.2-4-amd64+pywin32.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/python-3.9.2-4-amd64+pywin32.zip, 14413267 Bytes
Unpacking 'C:/develop/emsdk/downloads/python-3.9.2-4-amd64+pywin32.zip' to 'C:/develop/emsdk/python/3.9.2-nuget_64bit'
Done installing tool 'python-3.9.2-nuget-64bit'.
Skipped installing java-8.152-64bit, already installed.
Installing tool 'releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit'..
Downloading: C:/develop/emsdk/downloads/e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-wasm-binaries.zip from https://storage.googleapis.com/webassembly/emscripten-releases-builds/win/e5523d57a0e0dcf80f3b101bbc23613fcc3101aa/wasm-binaries.zip, 457616227 Bytes
Unpacking 'C:/develop/emsdk/downloads/e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-wasm-binaries.zip' to 'C:/develop/emsdk/upstream'
Done installing tool 'releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit'.
Done installing SDK 'sdk-releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit'.

Yes, OK. Trying binaryen again.

C:\develop\emsdk>emsdk install binaryen-tag-1.38.31-64bit
Installing tool 'binaryen-tag-1.38.31-64bit'..
Downloading: C:/develop/emsdk/downloads/binaryen-e1.38.31.zip from https://github.com/WebAssembly/binaryen/archive/1.38.31.zip
Unpacking 'C:/develop/emsdk/downloads/binaryen-e1.38.31.zip' to 'C:/develop/emsdk/binaryen/tag-1.38.31'
Traceback (most recent call last):
  File "C:\develop\emsdk\emsdk.py", line 3075, in <module>
    sys.exit(main(sys.argv[1:]))
  File "C:\develop\emsdk\emsdk.py", line 3057, in main
    tool.install()
  File "C:\develop\emsdk\emsdk.py", line 1802, in install
    return self.install_tool()
  File "C:\develop\emsdk\emsdk.py", line 1858, in install_tool
    success = download_and_extract(url, self.installation_path(),
  File "C:\develop\emsdk\emsdk.py", line 1399, in download_and_extract
    return unzip(download_target, dest_dir)
  File "C:\develop\emsdk\emsdk.py", line 559, in unzip
    mkdir_p(dest_dir)
  File "C:\develop\emsdk\emsdk.py", line 494, in mkdir_p
    os.makedirs(path)
  File "C:\develop\emsdk\python\3.9.2-nuget_64bit\lib\os.py", line 225, in makedirs
    mkdir(name, mode)
PermissionError: [WinError 5] Access is denied: 'C:/develop/emsdk/binaryen/tag-1.38.31'

list

The additional following precompiled SDKs are also available for download:
         sdk-releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit    INSTALLED
         sdk-releases-152cef4e00fc17776576bcc57f53badd21b92509-64bit

The following SDKs can be compiled from source:
         sdk-main-64bit

The following precompiled tool packages are available for download:
           releases-e5523d57a0e0dcf80f3b101bbc23613fcc3101aa-64bit      INSTALLED
           releases-152cef4e00fc17776576bcc57f53badd21b92509-64bit
           node-14.18.2-64bit
           node-14.15.5-64bit
           node-15.14.0-64bit
           node-16.20.0-64bit           INSTALLED
           python-3.9.2-nuget-64bit     INSTALLED
           python-3.9.2-64bit           INSTALLED
           java-8.152-64bit             INSTALLED
           emscripten-tag-1.38.30-32bit
           emscripten-tag-1.38.31-32bit
           emscripten-tag-1.38.30-64bit
           emscripten-tag-1.38.31-64bit
           emscripten-1.38.30
           emscripten-1.38.31
           gnu-2.5.4                    INSTALLED
           mingw-7.1.0-64bit            INSTALLED

The following tools can be compiled from source:
           llvm-git-main-32bit
           llvm-git-main-64bit
           binaryen-tag-1.38.30-32bit
           binaryen-tag-1.38.31-32bit
           binaryen-tag-1.38.30-64bit
           binaryen-tag-1.38.31-64bit
           emscripten-main-32bit
           emscripten-main-64bit        INSTALLED
           binaryen-main-32bit
           binaryen-main-64bit
           ninja-git-release-64bit
           ccache-git-emscripten-64bit
sbc100 commented 5 months ago

Does C:/develop/emsdk/binaryen/tag-1.38.31 exist? Can you try removing the binaryen directory completely and trying again?

Can I ask why you are trying to install this old version of binaryen from source?

Jillinger commented 5 months ago

Does C:/develop/emsdk/binaryen/tag-1.38.31 exist? Can you try removing the binaryen directory completely and trying again?

It fails, with the first error.

Installing tool 'binaryen-tag-1.38.31-64bit'..
Downloading: C:/develop/emsdk/downloads/binaryen-e1.38.31.zip from https://github.com/WebAssembly/binaryen/archive/1.38.31.zip
Unpacking 'C:/develop/emsdk/downloads/binaryen-e1.38.31.zip' to 'C:/develop/emsdk/binaryen/tag-1.38.31'
Unzipping file 'C:/develop/emsdk/downloads/binaryen-e1.38.31.zip' failed due to reason: [WinError 2] The system cannot find the file specified: '\\\\?\\C:\\develop\\emsdk\\binaryen\\unzip_temp\\binaryen-1.38.31\\test\\passes\\extract-function_pass-arg=extract:foo.txt' -> '\\\\?\\C:\\develop\\emsdk\\binaryen\\tag-1.38.31\\test\\passes\\extract-function_pass-arg=extract:foo.txt'
error: installation failed!

Can I ask why you are trying to install this old version of binaryen from source?

Sure. You asked a good question. No reason, other than I saw this: Emscripten Toolchain Requirements The instructions below list the main tools and dependencies in an Emscripten environment,

I'm trying to clean up my libraries, which over the years have become cluttered... a mess, in my opinion, since I probably don't need half of them. The reason is, cmake has been complaining about libraries in msys and mingw, and other suchlike, and I can't get most cmake builds to succeed. So, I'm looking to have the ideal, well organized, and most basic environment, that I can stop having headaches trying to build a simple project.

I probably don't need binaryen, but I thought this sounded like a good place to start, the main tools and dependencies in an Emscripten environment. Especially since I could use python, node, mingw, java, etc., all from one location.

If you have any suggestions, I'd appreciate any help. I was actually searching for "using emsdk mingw", when I stumbled on the emscripten documentation.

sbc100 commented 5 months ago

Your best best is simple to install the latest prebuilt sdk with emsdk install latest. That will include binaryen as well as all other dependencies.

Jillinger commented 5 months ago

I did a emsdk install latest above.

sbc100 commented 5 months ago

Can this issue be closed now?

Jillinger commented 5 months ago

If a solution for emsdk.py failing to extract binaryen was provided. I didn't see any, but if there's none, and no other person can offer any... Is that the case?

sbc100 commented 5 months ago

But do you actually need to install that old version of binaryen? My advise is not to use that but to use the version that comes with the prebuilt sdk binaries.. does that not work for you?

Jillinger commented 5 months ago

But do you actually need to install that old version of binaryen? My advise is not to use that but to use the version that comes with the prebuilt sdk binaries.. does that not work for you?

I actually didn't see the binaryen-main-64bit below:

binaryen-tag-1.38.29-64bit
     binaryen-tag-1.38.30-64bit
     binaryen-tag-1.38.31-64bit
     emscripten-main-32bit
     emscripten-main-64bit        INSTALLED
     binaryen-main-32bit
     **binaryen-main-64bit**
     ninja-git-release-64bit
     ccache-git-emscripten-64bit

C:\develop\emsdk>emsdk install binaryen-main-64bit

It's compiling. So, yes, you can close the issue. Thanks.