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

Attempt at fixing OpenSSL in AppVeyor #46

Closed
wants to merge 4 commits into from

Conversation

Gymnasiast
Copy link

OpenSSL should be available, according to https://help.appveyor.com/discussions/questions/1132-openssl-installation-issues and if I read it correctly.

@LRFLEW
Copy link
Owner

LRFLEW commented Dec 4, 2018

You are right about appveyor including OpenSSL as part of their build system, and I used to use it directly for the builds. The problem is the builds themselves. Last I checked, they were built with an older version of Visual Studio, which caused a complication with providing the redistributable installer. I had switched to my own build of OpenSSL to force them to use the same redistributable and avoid issues. We need to check the binaries that appveyor uses before trying to merge this.

@LRFLEW
Copy link
Owner

LRFLEW commented Dec 5, 2018

Could you rebase this? I fixed the rest of the Windows build (I think), and I want to check the artifact from the PR build before this gets merged to test which redistributable is used by OpenSSL.

@LRFLEW LRFLEW mentioned this pull request Dec 5, 2018
@LRFLEW
Copy link
Owner

LRFLEW commented Dec 12, 2018

Unfortunately, this does have the issue that I feared. Looking at the AppVeyor artifacts, you can see that the application and Qt load VCRUNTIME140.dll, which is part of the Visual Studio 2015/2017 redistributable, while the OpenSSL binaries load MSVCR120.dll, which is part of the Visual Studio 2013 redistributable. Since the installer only includes/runs the 2017 redistributable installer (and adding the 2013 one would be impractical and a bad idea), this can cause runtime issues for users. (#5)

Qt5 5.11 (which is what it's using now) should be able to support OpenSSL 1.1.0 or 1.1.1. Based on my tests with the source that AppVeyor uses, switching to this might fix the issue. Try changing the path to use OpenSSL 1.1.1 (as that's the LTS version), and I can look at the artifacts again. (Note, OpenSSL 1.1.X changes the DLL names)

@LRFLEW
Copy link
Owner

LRFLEW commented Dec 12, 2018

So, we have a problem. Based on what I can tell from my research, OpenSSL 1.1.X support in Qt5 requires a compile-time flag that isn't set in the official release. I'm expecting this to be changed in the near future, but for now, we either need to build Qt from source ourselves, or use another source for OpenSSL (or build it ourselves). I think the best option at this point is to use our own OpenSSL build, like it is currently trying to do without this PR. The problem is that AppVeyor no longer holds on to artifacts indefinitely. I think the best way of doing it now would be to use GitHub releases, as I'm using a mirror of the official Git repository to do the builds with CI already. I'll work on this.

@Gymnasiast Gymnasiast closed this Dec 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants