Upstream patch from Cygwin package repo#191
Conversation
Replace the current Cygwin build with CMake, which is the supported alternative on Windows. Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
This change will build "cygvalkey-0.1.dll" instead of "cygvalkey.dll" on Cygwin. It will also set the compatibility version field in macOS: > otool -L libvalkey.dylib libvalkey.dylib: @rpath/libvalkey.0.1.dylib (compatibility version 0.0.0, current version 0.1.0) libvalkey.dylib: @rpath/libvalkey.0.1.dylib (compatibility version 0.1.0, current version 0.1.0) Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
|
@michael-grunder maybe you know more about the compatibility version i Mac-libs (Mach-O)? |
|
/cc @fd00 Does this change seem ok? Nothing more needed? |
I don't know very much about them but I think the change is correct. AFAIK the first triplet is "compatibility version" and the second "current version". You bump the current version each release but only bump compatibility version if there is a breaking change. Applications embed this compatibility version at link time and then check it each time the application starts. If it detects a compatibility version that is greater than the one embedded in the binary it will refuse to start. |
|
Thank you for the notification. We have only confirmed that we can build on cygwin by applying this patch. Some of the As for soversion, the cmake variable name contained |
Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
I added a step to run some tests on Cygwin as well, but it uses |
I switched to memurai for hiredis Windows tests a few years ago. Hasn't caused any issues that I'm aware of. |
Yes, it works fine. It was mentioned that ctest doesn't work and this is because CMake creates a test target that uses ctest, which in turn runs our |
Repology showed that there already is a Cygwin package, which required a patch to build.
Add the corrections from the patch:
valkey_tlslinkage on Cygwin to avoid an build error when building with TLS.The built library will be named "cygvalkey-0.1.dll" instead of "cygvalkey.dll".
Additionally, build Cygwin using CMake in its own job.
Build Cygwin using CMake only, which is the supported alternative on Windows.
NOTE:
The addition of
SOVERSIONwill also set the compatibility version field in macOS:But this seems ok, and not used in later macos release: https://github.com/giordano/macos-compatibility-version