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

Doesn't work on fresh windows because of VC Runtime external dependencies #173

Closed
splix opened this issue Jun 30, 2017 · 20 comments
Closed
Labels

Comments

@splix
Copy link
Member

splix commented Jun 30, 2017

emerald-windows

and it's unclear where to get that DLL. do we need to ask users to install it before using emerald?

@splix splix added the Bug label Jun 30, 2017
@ghost
Copy link

ghost commented Jun 30, 2017

Hh, Visual C++ Redistributable for Visual Studio 2015 x86 or x64 installed, I think it is needed only to compile, I will try to find why.

@splix
Copy link
Member Author

splix commented Jun 30, 2017

It seems that it works on other users machines. That one was completely fresh, only Chrome browser was installed before Emerald.

@ghost
Copy link

ghost commented Jun 30, 2017

Did you build the release version with cargo build --release?

@splix
Copy link
Member Author

splix commented Jun 30, 2017

It was installed with cargo install emerald-cli -f

@ghost ghost changed the title doesn't work on fresh windows Doesn't work on fresh windows because of VC Runtime external dependencies Jun 30, 2017
@ghost
Copy link

ghost commented Jun 30, 2017

> ldd  /c/Users/dulanov/.cargo/bin/emerald.exe

        ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x77a10000)
        kernel32.dll => /c/Windows/system32/kernel32.dll (0x777f0000)
        KERNELBASE.dll => /c/Windows/system32/KERNELBASE.dll (0x7fefd7c0000)
        ADVAPI32.dll => /c/Windows/system32/ADVAPI32.dll (0x7fefdd40000)
        msvcrt.dll => /c/Windows/system32/msvcrt.dll (0x7fefecf0000)
        sechost.dll => /c/Windows/SYSTEM32/sechost.dll (0x7feffd00000)
        RPCRT4.dll => /c/Windows/system32/RPCRT4.dll (0x7fefe670000)
        WS2_32.dll => /c/Windows/system32/WS2_32.dll (0x7fefec80000)
        NSI.dll => /c/Windows/system32/NSI.dll (0x7fefec70000)
        SHELL32.dll => /c/Windows/system32/SHELL32.dll (0x7fefed90000)
        SHLWAPI.dll => /c/Windows/system32/SHLWAPI.dll (0x7fefdac0000)
        GDI32.dll => /c/Windows/system32/GDI32.dll (0x7fefdfb0000)
        USER32.dll => /c/Windows/system32/USER32.dll (0x77910000)
        LPK.dll => /c/Windows/system32/LPK.dll (0x7fefe830000)
        USP10.dll => /c/Windows/system32/USP10.dll (0x7fefe3f0000)
        VCRUNTIME140.dll => /c/Windows/system32/VCRUNTIME140.dll (0x7fef7ce0000)
        api-ms-win-crt-runtime-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-runtime-l1-1-0.dll (0x7fefbb80000)
        ucrtbase.DLL => /c/Windows/system32/ucrtbase.DLL (0x7fee9ea0000)
        api-ms-win-core-timezone-l1-1-0.dll => /c/Windows/system32/api-ms-win-core-timezone-l1-1-0.dll (0x7fefafc0000)
        api-ms-win-core-file-l2-1-0.dll => /c/Windows/system32/api-ms-win-core-file-l2-1-0.dll (0x7fef5d00000)
        api-ms-win-core-localization-l1-2-0.dll => /c/Windows/system32/api-ms-win-core-localization-l1-2-0.dll (0x7fef5cf0000)
        api-ms-win-core-synch-l1-2-0.dll => /c/Windows/system32/api-ms-win-core-synch-l1-2-0.dll (0x7fef6a90000)
        api-ms-win-core-processthreads-l1-1-1.dll => /c/Windows/system32/api-ms-win-core-processthreads-l1-1-1.dll (0x7fef5ce0000)
        api-ms-win-core-file-l1-2-0.dll => /c/Windows/system32/api-ms-win-core-file-l1-2-0.dll (0x7fef5cd0000)
        api-ms-win-crt-string-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-string-l1-1-0.dll (0x7fef5cc0000)
        api-ms-win-crt-heap-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-heap-l1-1-0.dll (0x7fef5cb0000)
        api-ms-win-crt-stdio-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-stdio-l1-1-0.dll (0x7fef5ca0000)
        api-ms-win-crt-convert-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-convert-l1-1-0.dll (0x7fef5c90000)
        api-ms-win-crt-math-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-math-l1-1-0.dll (0x7fef5c80000)
        api-ms-win-crt-locale-l1-1-0.dll => /c/Windows/system32/api-ms-win-crt-locale-l1-1-0.dll (0x7fef5c70000)

@ghost
Copy link

ghost commented Jun 30, 2017

> pldd 4824
4824:   /c/Users/dulanov/.cargo/bin/emerald
/c/Windows/SYSTEM32/ntdll.dll
/c/Windows/system32/kernel32.dll
/c/Windows/system32/KERNELBASE.dll
/c/Windows/system32/ADVAPI32.dll
/c/Windows/system32/msvcrt.dll
/c/Windows/SYSTEM32/sechost.dll
/c/Windows/system32/RPCRT4.dll
/c/Windows/system32/WS2_32.dll
/c/Windows/system32/NSI.dll
/c/Windows/system32/SHELL32.dll
/c/Windows/system32/SHLWAPI.dll
/c/Windows/system32/GDI32.dll
/c/Windows/system32/USER32.dll
/c/Windows/system32/LPK.dll
/c/Windows/system32/USP10.dll
/c/Windows/system32/VCRUNTIME140.dll
/c/Windows/system32/api-ms-win-crt-runtime-l1-1-0.dll
/c/Windows/system32/ucrtbase.DLL
/c/Windows/system32/api-ms-win-core-timezone-l1-1-0.dll
/c/Windows/system32/api-ms-win-core-file-l2-1-0.dll
/c/Windows/system32/api-ms-win-core-localization-l1-2-0.dll
/c/Windows/system32/api-ms-win-core-synch-l1-2-0.dll
/c/Windows/system32/api-ms-win-core-processthreads-l1-1-1.dll
/c/Windows/system32/api-ms-win-core-file-l1-2-0.dll
/c/Windows/system32/api-ms-win-crt-string-l1-1-0.dll
/c/Windows/system32/api-ms-win-crt-heap-l1-1-0.dll
/c/Windows/system32/api-ms-win-crt-stdio-l1-1-0.dll
/c/Windows/system32/api-ms-win-crt-convert-l1-1-0.dll
/c/Windows/system32/api-ms-win-crt-math-l1-1-0.dll
/c/Windows/system32/api-ms-win-crt-locale-l1-1-0.dll
/c/Windows/system32/IMM32.DLL
/c/Windows/system32/MSCTF.dll
/c/Windows/system32/CRYPTSP.dll
/c/Windows/system32/rsaenh.dll
/c/Windows/system32/CRYPTBASE.dll
/c/Windows/system32/mswsock.dll
/c/Windows/System32/wshtcpip.dll

@ghost
Copy link

ghost commented Jun 30, 2017

More details can be found here - https://www.reddit.com/r/rust/comments/61pjbp/static_linking_support/

I want to get a binary which I can use in let's say a newly installed system and it just works. So for instance dynamic linking with kernel32.dll is perfectly fine but doing so with vcruntime140.dll would not work well.

@ghost
Copy link

ghost commented Jun 30, 2017

For now the only recommendation - install Visual C++ Redistributable for Visual Studio 2015 - https://www.microsoft.com/en-us/download/details.aspx?id=48145, or rebuild with GNU toolchain, but it doesn't work now because of rust-crypto crate.

@ghost
Copy link

ghost commented Jul 12, 2017

I was able to reproduce the error locally
image

@ghost
Copy link

ghost commented Jul 12, 2017

@ia can you check it - electron/electron#5538, that problem should be fixed in Electron v1.1.1

@ghost
Copy link

ghost commented Jul 12, 2017

@whilei
Copy link
Contributor

whilei commented Jul 12, 2017

Wallet is using "electron": "^1.6.11", currently --

I wonder if the following might help? It should compile Electron app dependencies for existing system.

$ npm run postinstall

"postinstall": "electron-builder install-app-deps",

@ghost
Copy link

ghost commented Jul 12, 2017

@ia electron contains Visual C++ runtimes, i try to find why we don't have them yet, because:

Electron version: 1.1.0
Operating system: Windows
This release contains the Visual C++ 2013 runtimes instead of Visual C++ 2015 runtimes.

@ghost
Copy link

ghost commented Jul 12, 2017

Probably exists some command to update external binaries? From v1.1.1 electron start to use exactly VC++ 2015 runtime, it should work!

@ghost
Copy link

ghost commented Jul 12, 2017

@ghost
Copy link

ghost commented Jul 12, 2017

What the hell? And then was deleted it in electron/electron@4702d8b#diff-81bd91b359c3a9857fba4a7f0f448d8e

@ghost
Copy link

ghost commented Jul 12, 2017

image

@ghost
Copy link

ghost commented Jul 12, 2017

Ok, it should be preinstalled by user - https://github.com/electron/electron/blob/master/script/create-dist.py#L138

@ghost
Copy link

ghost commented Jul 12, 2017

image

@ghost
Copy link

ghost commented Jul 13, 2017

Is fixed by #193.

@ghost ghost closed this as completed Jul 13, 2017
@splix splix unassigned ghost Mar 4, 2018
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants