Hi, perhaps I'm doing something silly, I just want to try build a rust CLI tool in wine under linux. It never took off though. I'm getting a weird error implying a problem with certificate verification/revocation
wine64 cargo build gives
irrelevant wine debug
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0024:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0024:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0024:err:ole:get_local_server_stream Failed: 80004002
0009:fixme:thread:SetThreadStackGuarantee (0x32fc50): stub
0009:fixme:bcrypt:BCryptOpenAlgorithmProvider algorithm L"DSA" not supported
0009:fixme:bcrypt:BCryptOpenAlgorithmProvider algorithm L"RC4" not supported
0009:fixme:bcrypt:BCryptOpenAlgorithmProvider algorithm L"3DES" not supported
0009:fixme:bcrypt:BCryptOpenAlgorithmProvider algorithm L"DH" not supported
0009:fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
Updating crates.io index
0009:fixme:winhttp:request_set_option unimplemented option 109
0009:err:crypt:CRYPT_ImportSystemRootCertsToReg Failed to import system certs into registry, 00000057
warning: spurious network error (2 tries remaining): failed to send request: ; class=Os (2)
0009:fixme:winhttp:request_set_option unimplemented option 109
warning: spurious network error (1 tries remaining): failed to send request: ; class=Os (2)
0009:fixme:winhttp:request_set_option unimplemented option 109
error: failed to getasync-stdas a dependency of packagemytool v0.1.0 (.../mytool/)Caused by:
failed to fetchhttps://github.com/rust-lang/crates.io-indexCaused by:
failed to send request: ; class=Os (2)
The inspiration came from Using Rust in Wine as a sort of cross-compiler · GitHub . I used 64bit version though: wine64 msiexec /i Downloads/rust-nightly-x86_64-pc-windows-gnu.msi.
wine64 cargo --version --verbose gives
wine debug
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0024:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0024:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0024:err:ole:get_local_server_stream Failed: 80004002
0009:fixme:thread:SetThreadStackGuarantee (0x32fc50): stub
cargo 1.52.0-nightly (bf5a5d5e5 2021-02-18)
release: 1.52.0
commit-hash: bf5a5d5e5d3ae842a63bfce6d070dfd438cf6070
commit-date: 2021-02-18
I thought this would have been an easy way to compile for windows on linux, but nope. It looks as though wine fails to import system certs, wild guess. It is thus probably not rust/cargo specific thing.
I also tried rustup-init.exe which failed to install a toolchain likely for the same reasons:
0029:err:crypt:CRYPT_ImportSystemRootCertsToReg Failed to import system certs into registry, 00000057
error: could not download file from 'https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256' to 'C:\users\me.rustup\tmp\lbs165gw0zr76yg6_file'
error: caused by: failed to make network request
error: caused by: error sending request for url (https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256): error trying to connect: OS Error -2146869244 (FormatMessageW() returned error 317) (os error -2146869244)
error: caused by: error trying to connect: OS Error -2146869244 (FormatMessageW() returned error 317) (os error -2146869244)
error: caused by: OS Error -2146869244 (FormatMessageW() returned error 317) (os error -2146869244)
OS Error -2146869244 is 0x800B010E, which according to some .net page should be:
The revocation process could not continue - the certificate(s) could not be checked.
Curiously, curl works. Downloads/curl-7.75.0-win64-mingw/bin/curl.exe https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256 gives:
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {00000131-0000-0000-c000-000000000046}
0024:err:ole:marshal_object couldn't get IPSFactory buffer for interface {6d5140c1-7436-11ce-8034-00aa006009fa}
0024:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
0024:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, 80004002
0024:err:ole:get_local_server_stream Failed: 80004002
3e45ff9e14774408be73b5ba6dba6137741b15c4ad838f613c43987ef1b9d650 channel-rust-stable.toml
wine64 --version
wine-4.0 (Debian 4.0-2)
Any hints? Thank you