Skip to content
  • 0 Votes
    6 Posts
    436 Views
    T

    Oh well. I am calling wget to get things accomplished. Nice work around that also takes care of redirects and all that.

  • 0 Votes
    10 Posts
    2k Views
    SGaistS

    @quutee sounds like it's a bug. You should check the bug report system to see if there's something related.

  • 0 Votes
    1 Posts
    411 Views
    No one has replied
  • 0 Votes
    3 Posts
    2k Views
    M

    Copy qopensslbackend.dll in a tls folder next to your .exe, and DLL in your PATH :

    ./myexec.exe
    ./libcrypto-1_1-x64.dll
    ./libssl-1_1-x64.dll
    ./tls/qopensslbackend.dll

  • 0 Votes
    2 Posts
    387 Views
    SGaistS

    Hi,

    A minimal compilable example would be nice for the bug report.

    Did you also check with Qt 5.15.0 and 5.15.1 ? Just in case it something that changed with 5.15.2.

  • 0 Votes
    2 Posts
    757 Views
    sierdzioS

    @DanBar said in Problem with OpenSSL 1.1 after Qt update?:

    If so, how can I make my application compatible with OpenSSL 1.1

    It should be enough to just link to it during build and then make sure proper DLL files are in the same directory where your .exe is built. Which DLLs you need and what file names they are depends on compiler used and Open SSL version - sorry I don't remember them exactly, I use Windows only sporadically. If I recall correctly there used to be 2 DLLs in old versions, but nowadays it's a single file and it's called something like libssl-1_1-x64.dll.

    or is there a way to switch back to OpenSSL 1.0 to test and see if this is the issue?

    OpenSSL 1.0 has reached end of life a long time ago. DO NOT USE IT, it is a serious security risk at this point.

  • 0 Votes
    4 Posts
    2k Views
    M

    Building OpenSSL with the no-threads option solve the problem in my case.

    I don't really search deeper what is the consequences of that build option but maybe it can help someone ;)

  • 0 Votes
    2 Posts
    364 Views
    SGaistS

    Hi,

    Qt 5.15 use OpenSSL 1.1.

    If you are locked to 1.0, you will need to rebuild qtbase with it.

  • 0 Votes
    5 Posts
    497 Views
    H

    yes I did. the get request is working in it.

  • 0 Votes
    2 Posts
    435 Views
    aha_1980A

    Hi @Edcarllos,

    that would be a desastrous button then! Thanks for the heads-up.

    Here's the link to the bugreport: https://bugreports.qt.io/browse/QTCREATORBUG-24173

    And good luck recovering your files!

    Best regards

  • 2 Votes
    4 Posts
    1k Views
    G

    i am facing the same nightmare. it's 2weeks i'm stuck tryin' to obtain my static +openssl build and...no way.

    No issues compiling without openssl support.

    Any progress on that? Seems that nobody wants to help :(

  • 0 Votes
    3 Posts
    5k Views
    xenovasX

    @sergitab94 Sorry for this reply I know this is an old post, but I followed your steps one by one but still my build fails.
    Anyway opennssl static build with Qt really frustrated me...

    C:\Qt\Static5113OpenSSL\src\qt-everywhere-src-5.11.3\qtbase\bin\qmake.exe -install qinstall C:\Qt\Static5113OpenSSL\src\qt-everywhere-src-5.11.3\qtbase\mkspecs\winrt-x86-msvc2015 C:\Qt\Static5113OpenSSL\StaticOpenSSL64\mkspecs\winrt-x86-msvc2015 C:\Qt\Static5113OpenSSL\src\qt-everywhere-src-5.11.3\qtbase\bin\qmake.exe -install qinstall C:\Qt\Static5113OpenSSL\src\qt-everywhere-src-5.11.3\qtbase\mkspecs\winrt-x86-msvc2017 C:\Qt\Static5113OpenSSL\StaticOpenSSL64\mkspecs\winrt-x86-msvc2017 mingw32-make[1]: Target 'install' not remade because of errors. mingw32-make[1]: Leaving directory 'C:/Qt/Static5113OpenSSL/src/qt-everywhere-src-5.11.3/qtbase' mingw32-make: *** [Makefile:92: module-qtbase-install_subtargets] Error 2 mingw32-make: Target 'install' not remade because of errors.
  • 0 Votes
    9 Posts
    3k Views
    QjayQ

    hey i didn't fixed it . i downloaded Qt5.12.4 and then upgraded my openssl lib to 1.1.1b

    so i am good now
    thanks !!

  • 0 Votes
    22 Posts
    14k Views
    SGaistS

    @SherifOmran said in how to compile qt static with open ssl:

    PATH

    If you really need to change that variable, then do it only in the terminal you use to build your stuff. It's never a good idea to add the path to such sensitive libraries system wide as you might break unrelated applications.

  • 0 Votes
    6 Posts
    2k Views
    ashajgA

    sample of script:

    #!/bin/bash # Cross-compile environment for Android on ARMv7 and x86 # # Contents licensed under the terms of the OpenSSL license # http://www.openssl.org/source/license.html # # See http://wiki.openssl.org/index.php/FIPS_Library_and_Android # and http://wiki.openssl.org/index.php/Android ##################################################################### export ANDROID_NDK_ROOT="/c/ASHISH/android-ndk-r15c" # Set ANDROID_NDK_ROOT to you NDK location. For example, # /opt/android-ndk-r8e or /opt/android-ndk-r9. This can be done in a # login script. If ANDROID_NDK_ROOT is not specified, the script will # try to pick it up with the value of _ANDROID_NDK_ROOT below. If # ANDROID_NDK_ROOT is set, then the value is ignored. # _ANDROID_NDK="android-ndk-r8e" #_ANDROID_NDK="android-ndk-r9" # _ANDROID_NDK="android-ndk-r10" # Set _ANDROID_EABI to the EABI you want to use. You can find the # list in $ANDROID_NDK_ROOT/toolchains. This value is always used. # _ANDROID_EABI="x86-4.6" # _ANDROID_EABI="arm-linux-androideabi-4.6" _ANDROID_EABI="arm-linux-androideabi-4.9" # Set _ANDROID_ARCH to the architecture you are building for. # This value is always used. # _ANDROID_ARCH=arch-x86 _ANDROID_ARCH=arch-arm # Set _ANDROID_API to the API you want to use. You should set it # to one of: android-14, android-9, android-8, android-14, android-5 # android-4, or android-3. You can't set it to the latest (for # example, API-17) because the NDK does not supply the platform. At # Android 5.0, there will likely be another platform added (android-22?). # This value is always used. # _ANDROID_API="android-14" _ANDROID_API="android-24" # _ANDROID_API="android-19" ##################################################################### # If the user did not specify the NDK location, try and pick it up. # We expect something like ANDROID_NDK_ROOT=/opt/android-ndk-r8e # or ANDROID_NDK_ROOT=/usr/local/android-ndk-r8e. if [ -z "$ANDROID_NDK_ROOT" ]; then _ANDROID_NDK_ROOT="" if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/usr/local/$_ANDROID_NDK" ]; then _ANDROID_NDK_ROOT="/usr/local/$_ANDROID_NDK" fi if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "/opt/$_ANDROID_NDK" ]; then _ANDROID_NDK_ROOT="/opt/$_ANDROID_NDK" fi if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "$HOME/$_ANDROID_NDK" ]; then _ANDROID_NDK_ROOT="$HOME/$_ANDROID_NDK" fi if [ -z "$_ANDROID_NDK_ROOT" ] && [ -d "$PWD/$_ANDROID_NDK" ]; then _ANDROID_NDK_ROOT="$PWD/$_ANDROID_NDK" fi # If a path was set, then export it if [ ! -z "$_ANDROID_NDK_ROOT" ] && [ -d "$_ANDROID_NDK_ROOT" ]; then export ANDROID_NDK_ROOT="$_ANDROID_NDK_ROOT" fi fi # Error checking # ANDROID_NDK_ROOT should always be set by the user (even when not running this script) # http://groups.google.com/group/android-ndk/browse_thread/thread/a998e139aca71d77 if [ -z "$ANDROID_NDK_ROOT" ] || [ ! -d "$ANDROID_NDK_ROOT" ]; then echo "Error: ANDROID_NDK_ROOT is not a valid path. Please edit this script." # echo "$ANDROID_NDK_ROOT" # exit 1 fi # Error checking if [ ! -d "$ANDROID_NDK_ROOT/toolchains" ]; then echo "Error: ANDROID_NDK_ROOT/toolchains is not a valid path. Please edit this script." # echo "$ANDROID_NDK_ROOT/toolchains" # exit 1 fi # Error checking if [ ! -d "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI" ]; then echo "Error: ANDROID_EABI is not a valid path. Please edit this script." # echo "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI" # exit 1 fi ##################################################################### # Based on ANDROID_NDK_ROOT, try and pick up the required toolchain. We expect something like: # /opt/android-ndk-r83/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86_64/bin # Once we locate the toolchain, we add it to the PATH. Note: this is the 'hard way' of # doing things according to the NDK documentation for Ice Cream Sandwich. # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html ANDROID_TOOLCHAIN="" for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86" "windows-x86_64" do if [ -d "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" ]; then ANDROID_TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" break fi done # Error checking if [ -z "$ANDROID_TOOLCHAIN" ] || [ ! -d "$ANDROID_TOOLCHAIN" ]; then echo "Error: ANDROID_TOOLCHAIN is not valid. Please edit this script." # echo "$ANDROID_TOOLCHAIN" # exit 1 fi case $_ANDROID_ARCH in arch-arm) ANDROID_TOOLS="arm-linux-androideabi-gcc arm-linux-androideabi-ranlib arm-linux-androideabi-ld" ;; arch-x86) ANDROID_TOOLS="i686-linux-android-gcc i686-linux-android-ranlib i686-linux-android-ld" ;; *) echo "ERROR ERROR ERROR" ;; esac for tool in $ANDROID_TOOLS do # Error checking if [ ! -e "$ANDROID_TOOLCHAIN/$tool" ]; then echo "Error: Failed to find $tool. Please edit this script." # echo "$ANDROID_TOOLCHAIN/$tool" # exit 1 fi done # Only modify/export PATH if ANDROID_TOOLCHAIN good if [ ! -z "$ANDROID_TOOLCHAIN" ]; then export ANDROID_TOOLCHAIN="$ANDROID_TOOLCHAIN" export PATH="$ANDROID_TOOLCHAIN":"$PATH" fi ##################################################################### # For the Android SYSROOT. Can be used on the command line with --sysroot # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html export ANDROID_SYSROOT="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH" export CROSS_SYSROOT="$ANDROID_SYSROOT" export NDK_SYSROOT="$ANDROID_SYSROOT" # Error checking if [ -z "$ANDROID_SYSROOT" ] || [ ! -d "$ANDROID_SYSROOT" ]; then echo "Error: ANDROID_SYSROOT is not valid. Please edit this script." # echo "$ANDROID_SYSROOT" # exit 1 fi ##################################################################### # If the user did not specify the FIPS_SIG location, try and pick it up # If the user specified a bad location, then try and pick it up too. #if [ -z "$FIPS_SIG" ] || [ ! -e "$FIPS_SIG" ]; then # # # Try and locate it # _FIPS_SIG="" # if [ -d "/usr/local/ssl/$_ANDROID_API" ]; then # _FIPS_SIG=`find "/usr/local/ssl/$_ANDROID_API" -name incore` # fi # # if [ ! -e "$_FIPS_SIG" ]; then # _FIPS_SIG=`find $PWD -name incore` # fi # # # If a path was set, then export it # if [ ! -z "$_FIPS_SIG" ] && [ -e "$_FIPS_SIG" ]; then # export FIPS_SIG="$_FIPS_SIG" # fi #fi ## Error checking. Its OK to ignore this if you are *not* building for FIPS #if [ -z "$FIPS_SIG" ] || [ ! -e "$FIPS_SIG" ]; then # echo "Error: FIPS_SIG does not specify incore module. Please edit this script." # # echo "$FIPS_SIG" # # exit 1 #fi ##################################################################### # Most of these should be OK (MACHINE, SYSTEM, ARCH). RELEASE is ignored. export MACHINE=armv7 export RELEASE=2.6.37 export SYSTEM=android export ARCH=arm export CROSS_COMPILE="arm-linux-androideabi-" if [ "$_ANDROID_ARCH" == "arch-x86" ]; then export MACHINE=i686 export RELEASE=2.6.37 export SYSTEM=android export ARCH=x86 export CROSS_COMPILE="i686-linux-android-" fi # For the Android toolchain # https://android.googlesource.com/platform/ndk/+/ics-mr0/docs/STANDALONE-TOOLCHAIN.html export ANDROID_SYSROOT="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH" export SYSROOT="$ANDROID_SYSROOT" export NDK_SYSROOT="$ANDROID_SYSROOT" export ANDROID_NDK_SYSROOT="$ANDROID_SYSROOT" export ANDROID_API="$_ANDROID_API" # CROSS_COMPILE and ANDROID_DEV are DFW (Don't Fiddle With). Its used by OpenSSL build system. # export CROSS_COMPILE="arm-linux-androideabi-" export ANDROID_DEV="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH/usr" export HOSTCC=gcc VERBOSE=1 if [ ! -z "$VERBOSE" ] && [ "$VERBOSE" != "0" ]; then echo "ANDROID_NDK_ROOT: $ANDROID_NDK_ROOT" echo "ANDROID_ARCH: $_ANDROID_ARCH" echo "ANDROID_EABI: $_ANDROID_EABI" echo "ANDROID_API: $ANDROID_API" echo "ANDROID_SYSROOT: $ANDROID_SYSROOT" echo "ANDROID_TOOLCHAIN: $ANDROID_TOOLCHAIN" echo "FIPS_SIG: $FIPS_SIG" echo "CROSS_COMPILE: $CROSS_COMPILE" echo "ANDROID_DEV: $ANDROID_DEV" fi
  • 0 Votes
    7 Posts
    3k Views
    SGaistS

    Hi,

    Not the same backend used. Unless you re-build Qt and force the use of OpenSSL. Qt on macOS uses Apple's SecureTransport framework. OpenSSL on that platform has been deprecated a long time ago.

  • 0 Votes
    13 Posts
    3k Views
    aha_1980A

    @Opa114 Thanks for the feedback. So please mark this topic as SOLVED now.

  • 0 Votes
    3 Posts
    1k Views
    T

    It wooooorked, thank you so muuuuch :)