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

Openssl error on Android #3514

Open
cbdefontenay opened this issue Jan 7, 2025 · 0 comments
Open

Openssl error on Android #3514

cbdefontenay opened this issue Jan 7, 2025 · 0 comments
Labels
bug Something isn't working
Milestone

Comments

@cbdefontenay
Copy link

cbdefontenay commented Jan 7, 2025

Problem

When running a new dioxus app for mobile devices with Barebones or Jumpstart from the cli, everything works fine on the android emulator at first, the app is launching. But as soon as the crate reqwest is added and used, like in the HotDog tutorial, I get an Openssl error (and perl by extention).

So I saw there were already an issue like this reported a few month ago, but I thought because it happened not only on my computer but also on two other Windows OS based computers, (even after following all the steps of the documentation even this discussion), this might be an issue. So I hope I am in the right place and this is really an issue/bug and not something I did wrong.

Steps To Reproduce

Steps to reproduce the behavior:

  • dx new hotdog
  • Default platform web/fullstack/server (like in the Hotdog tutorial) but trying to serve on Android.
  • dx serve --platform android

Expected behavior

The expected behaviour for the HotDog tutorial at least or any other project using reqwest and serving Android would be that the app launches and runs.

Screenshots
The error is the following:

22:15:02 [cargo] error: failed to run custom build command for `openssl-sys v0.9.104`
22:15:02 [cargo] Caused by:
22:15:02 [cargo]   process didn't exit successfully: `C:\Users\[name]\Documents\Rust\hotdog\target\android-dev\build\openssl-sys-349e62533ee4b264\build-script-main` (exit code: 1)  
22:15:02 [cargo]   --- stdout
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(osslconf, values("OPENSSL_NO_OCB", "OPENSSL_NO_SM4", "OPENSSL_NO_SEED", "OPENSSL_NO_CHACHA", "OPENSSL_NO_CAST", "OPENSSL_NO_IDEA", "OPENSSL_NO_CAMELLIA", "OPENSSL_NO_RC4", "OPENSSL_NO_BF", "OPENSSL_NO_PSK", "OPENSSL_NO_DEPRECATED_3_0", "OPENSSL_NO_SCRYPT", "OPENSSL_NO_SM3", "OPENSSL_NO_RMD160", "OPENSSL_NO_EC2M", "OPENSSL_NO_OCSP", "OPENSSL_NO_CMS", "OPENSSL_NO_COMP", "OPENSSL_NO_SOCK", "OPENSSL_NO_STDIO", "OPENSSL_NO_EC", "OPENSSL_NO_SSL3_METHOD", "OPENSSL_NO_KRB5", "OPENSSL_NO_TLSEXT", "OPENSSL_NO_SRP", "OPENSSL_NO_RFC3779", "OPENSSL_NO_SHA", "OPENSSL_NO_NEXTPROTONEG", "OPENSSL_NO_ENGINE", "OPENSSL_NO_BUF_FREELISTS"))
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(openssl)                                                                                                                               
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(boringssl)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl250)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl251)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl252)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl261)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl270)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl271)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl273)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl280)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl281)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl291)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl310)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl321)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl332)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl340)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl350)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl360)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl361)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl370)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl380)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl381)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl382)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl390)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(libressl400)                                                                                                                           
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl101)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl102)                                                                                                                               
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl102f)                                                                                                                              
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl102h)                                                                                                                              
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl110)                                                                                                                               
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl110f)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl110g)                                                                                                                              
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl110h)                                                                                                                              
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl111)                                                                                                                               
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl111b)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl111c)                                                                                                                              
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl111d)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl300)                                                                                                                               
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl310)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl320)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl330)
22:15:02 [cargo]   cargo:rustc-check-cfg=cfg(ossl340)                                                                                                                               
22:15:02 [cargo]   cargo:rerun-if-env-changed=X86_64_LINUX_ANDROID_OPENSSL_NO_VENDOR                                                                                                
22:15:02 [cargo]   X86_64_LINUX_ANDROID_OPENSSL_NO_VENDOR unset                                                                                                                     
22:15:02 [cargo]   cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR                                                                                                                     
22:15:02 [cargo]   OPENSSL_NO_VENDOR unset                                                                                                                                          
22:15:02 [cargo]   cargo:rerun-if-env-changed=X86_64_LINUX_ANDROID_OPENSSL_CONFIG_DIR                                                                                               
22:15:02 [cargo]   X86_64_LINUX_ANDROID_OPENSSL_CONFIG_DIR unset                                                                                                                    
22:15:02 [cargo]   cargo:rerun-if-env-changed=OPENSSL_CONFIG_DIR                                                                                                                    
22:15:02 [cargo]   OPENSSL_CONFIG_DIR unset                                                                                                                                         
22:15:02 [cargo]   TARGET = Some(x86_64-linux-android)
22:15:02 [cargo]   OUT_DIR = Some(C:\Users\[name]\Documents\Rust\hotdog\target\x86_64-linux-android\android-dev\build\openssl-sys-56e305dc28bcc577\out)                              
22:15:02 [cargo]   cargo:rerun-if-env-changed=CC_x86_64-linux-android                                                                                                               
22:15:02 [cargo]   CC_x86_64-linux-android = None                                                                                                                                   
22:15:02 [cargo]   cargo:rerun-if-env-changed=CC_x86_64_linux_android                                                                                                               
22:15:02 [cargo]   CC_x86_64_linux_android = None                                                                                                                                   
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_CC                                                                                                                             
22:15:02 [cargo]   TARGET_CC = Some(C:\Users\[name]\AppData\Local\Android\Sdk\ndk\28.0.12674087\toolchains\llvm\prebuilt\windows-x86_64\bin\clang)                                   
22:15:02 [cargo]   cargo:rerun-if-env-changed=CC_KNOWN_WRAPPER_CUSTOM
22:15:02 [cargo]   CC_KNOWN_WRAPPER_CUSTOM = None                                                                                                                                   
22:15:02 [cargo]   RUSTC_WRAPPER = None                                                                                                                                             
22:15:02 [cargo]   cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT                                                                                                                
22:15:02 [cargo]   cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS                                                                                                                  
22:15:02 [cargo]   CRATE_CC_NO_DEFAULTS = None
22:15:02 [cargo]   DEBUG = Some(true)                                                                                                                                               
22:15:02 [cargo]   cargo:rerun-if-env-changed=CFLAGS_x86_64-linux-android                                                                                                           
22:15:02 [cargo]   CFLAGS_x86_64-linux-android = None
22:15:02 [cargo]   cargo:rerun-if-env-changed=CFLAGS_x86_64_linux_android
22:15:02 [cargo]   CFLAGS_x86_64_linux_android = None                                                                                                                               
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_CFLAGS                                                                                                                         
22:15:02 [cargo]   TARGET_CFLAGS = None                                                                                                                                             
22:15:02 [cargo]   cargo:rerun-if-env-changed=CFLAGS                                                                                                                                
22:15:02 [cargo]   CFLAGS = None                                                                                                                                                    
22:15:02 [cargo]   CARGO_ENCODED_RUSTFLAGS = Some(-Clinker=C:\Users\[name]\.cargo\bin\dx.exe-Clink-arg=-landroid-Clink-arg=-llog-Clink-arg=-lOpenSLES-Clink-arg=-Wl,--export-dynamic)
22:15:02 [cargo]   cargo:rerun-if-env-changed=AR_x86_64-linux-android                                                                                                               
22:15:02 [cargo]   AR_x86_64-linux-android = None                                                                                                                                   
22:15:02 [cargo]   cargo:rerun-if-env-changed=AR_x86_64_linux_android                                                                                                               
22:15:02 [cargo]   AR_x86_64_linux_android = None
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_AR
22:15:02 [cargo]   TARGET_AR = Some(C:\Users\[name]\AppData\Local\Android\Sdk\ndk\28.0.12674087\toolchains\llvm\prebuilt\windows-x86_64\bin\llvm-ar)                                 
22:15:02 [cargo]   cargo:rerun-if-env-changed=ARFLAGS_x86_64-linux-android                                                                                                          
22:15:02 [cargo]   ARFLAGS_x86_64-linux-android = None
22:15:02 [cargo]   cargo:rerun-if-env-changed=ARFLAGS_x86_64_linux_android                                                                                                          
22:15:02 [cargo]   ARFLAGS_x86_64_linux_android = None                                                                                                                              
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_ARFLAGS                                                                                                                        
22:15:02 [cargo]   TARGET_ARFLAGS = None                                                                                                                                            
22:15:02 [cargo]   cargo:rerun-if-env-changed=ARFLAGS                                                                                                                               
22:15:02 [cargo]   ARFLAGS = None
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIB_x86_64-linux-android                                                                                                           
22:15:02 [cargo]   RANLIB_x86_64-linux-android = None                                                                                                                               
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIB_x86_64_linux_android                                                                                                           
22:15:02 [cargo]   RANLIB_x86_64_linux_android = None                                                                                                                               
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_RANLIB
22:15:02 [cargo]   TARGET_RANLIB = None                                                                                                                                             
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIB                                                                                                                                
22:15:02 [cargo]   RANLIB = None                                                                                                                                                    
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64-linux-android                                                                                                      
22:15:02 [cargo]   RANLIBFLAGS_x86_64-linux-android = None                                                                                                                          
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIBFLAGS_x86_64_linux_android                                                                                                      
22:15:02 [cargo]   RANLIBFLAGS_x86_64_linux_android = None                                                                                                                          
22:15:02 [cargo]   cargo:rerun-if-env-changed=TARGET_RANLIBFLAGS                                                                                                                    
22:15:02 [cargo]   TARGET_RANLIBFLAGS = None
22:15:02 [cargo]   cargo:rerun-if-env-changed=RANLIBFLAGS
22:15:02 [cargo]   RANLIBFLAGS = None                                                                                                                                               
22:15:02 [cargo]   running "perl" "./Configure" "--prefix=C:/Users/[name]/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/install" "--openssldir=/usr/local/ssl" "no-shared" "no-module" "no-ssl3" "no-tests" "no-comp" "no-zlib" "no-zlib-dynamic" "--libdir=lib" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-stdio" "linux-x86_64" "-O2" "-DANDROID" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-2" "-fno-omit-frame-pointer" "-m64" "--target=x86_64-linux-android"
22:15:03 [cargo]   cargo:warning=configuring OpenSSL build: 'perl' reported failure with exit code: 2                                                                               
22:15:03 [cargo]   cargo:warning=openssl-src: failed to build OpenSSL from source                                                                                                   
22:15:03 [cargo]   --- stderr                                                                                                                                                       
22:15:03 [cargo]   Can't locate Locale/Maketext/Simple.pm in @INC (you may need to install the Locale::Maketext::Simple module) (@INC entries checked: /c/Users/[name]/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/build/src/util/perl /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl /c/Users/cbdef/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/build/src/external/perl/Text-Template-1.56/lib) at /usr/share/perl5/core_perl/Params/Check.pm line 6.                            
22:15:03 [cargo]   BEGIN failed--compilation aborted at /usr/share/perl5/core_perl/Params/Check.pm line 6.                                                                          
22:15:03 [cargo]   Compilation failed in require at /usr/share/perl5/core_perl/IPC/Cmd.pm line 59.                                                                                  
22:15:03 [cargo]   BEGIN failed--compilation aborted at /usr/share/perl5/core_perl/IPC/Cmd.pm line 59.
22:15:03 [cargo]   Compilation failed in require at /c/Users/[name]/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/build/src/util/perl/OpenSSL/config.pm line 19.                                                                                                                                    
22:15:03 [cargo]   BEGIN failed--compilation aborted at /c/Users/[name]/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/build/src/util/perl/OpenSSL/config.pm line 19.                                                                                                                                
22:15:03 [cargo]   Compilation failed in require at ./Configure line 23.                                                                                                            
22:15:03 [cargo]   BEGIN failed--compilation aborted at ./Configure line 23.                                                                                                        
22:15:03 [cargo]   Error configuring OpenSSL build:                                                                                                                                 
22:15:03 [cargo]       'perl' reported failure with exit code: 2
22:15:03 [cargo]       Command failed: "perl" "./Configure" "--prefix=C:/Users/[name]/Documents/Rust/hotdog/target/x86_64-linux-android/android-dev/build/openssl-sys-56e305dc28bcc577/out/openssl-build/install" "--openssldir=/usr/local/ssl" "no-shared" "no-module" "no-ssl3" "no-tests" "no-comp" "no-zlib" "no-zlib-dynamic" "--libdir=lib" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "no-stdio" "linux-x86_64" "-O2" "-DANDROID" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-2" "-fno-omit-frame-pointer" "-m64" "--target=x86_64-linux-android"
22:15:03 [cargo] warning: build failed, waiting for other jobs to finish...
22:15:06 [dev] Build failed: Other(Cargo build failed, signaled by the compiler. Toggle tracing mode (press `t`) for more information.)

My Cargo.toml does include:

[target.'cfg(target_os = "android")'.dependencies]
openssl = { version = "0.10", features = ["vendored"] }

Environment:

  • Dioxus version: 0.6
  • Rust version: rustup 1.27.1 (54dd3d00f 2024-04-24) info: This is the version for the rustup toolchain manager, not the rustc compiler. info: The currently active `rustc` version is `rustc 1.83.0 (90b35a623 2024-11-26)
  • OS info: Windows
  • App platform: Android
@jkelleyrtp jkelleyrtp added the bug Something isn't working label Jan 9, 2025
@jkelleyrtp jkelleyrtp added this to the 0.6.2 milestone Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants