-
Notifications
You must be signed in to change notification settings - Fork 720
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
Windows CI builds #4590
Windows CI builds #4590
Conversation
316e01c
to
60ffc02
Compare
60ffc02
to
bca5635
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you a lot @newhoggy !
bors r+ |
Can I suggest that we leave a comment explaining why this is doing what it's doing? Otherwise we will lose the knowledge and it will just make our pipelines even more obscure and hard to modify! |
bors r- |
Canceled. |
@@ -178,7 +179,7 @@ jobs: | |||
sed -i 's|tests: False|tests: True|g' cabal.project | |||
fi | |||
|
|||
cp .github/workflows/cabal.project.local.ci cabal.project.local | |||
cp ".github/workflows/cabal.project.local.ci.$(uname -s)" cabal.project.local |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For Windows only, we need to pass extra flags so that gcc
and ld
(which ghc
invokes) can find the libraries and header files.
This is necessary because unfortunately the 3rdparty msys2
system we use installs packages into D:/a/_temp/msys64/mingw64
instead of the system C:\msys64\mingw64
. This applies also the secp256k1
.
It's unclear why gcc
and ld
invoked by ghc
is unable to see this alternate installation directory.
To make it easy so treat Windows differently, we have OS specific cabal.project.local.ci.*
files which are copied to cabal.project.local
.
The additional flags to make this work on Windows can then be put into cabal.project.local.ci.MINGW64_NT-10.0-20348
Please see the linked issue for more information.
|
||
package cardano-crypto-praos | ||
extra-include-dirs: D:/a/_temp/msys64/mingw64/include | ||
extra-lib-dirs: D:/a/_temp/msys64/mingw64/lib |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any Haskell packages that fails to build because the system installation directory is missing will need an entry here. This ought to only happen with packages that have C bindings to system libraries that are only installed in the alternate package installation directory.
.github/workflows/haskell.yml
Outdated
@@ -57,6 +57,7 @@ jobs: | |||
mingw-w64-x86_64-toolchain | |||
mingw-w64-x86_64-libsodium | |||
mingw-w64-x86_64-jq | |||
mingw-w64-x86_64-openssl |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's unclear if I need this, but I added because HsOpenSSL
was the first package that was failing to build..
Once this is merged I will try to remove the openssl
and see if it still builds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems it worked fine without installing openssl
in ouroboros-network.
@coot seems to be addressing the same problems here, perhaps worth comparing notes? IntersectMBO/ouroboros-network#4134 |
@newhoggy pointed me to his PR, and I copied the solution. |
bca5635
to
e8af02a
Compare
bors r+ |
Build succeeded: |
4612: Cardano Node 1.35.6 aka Single Relay P2P release r=coot a=coot Update `ouroboros-network-0.2.0.0`. This also cherry-picked CI commits: * e745ca8 from #4184 * #4513 * #4526 * #4590 Co-authored-by: Michael Peyton Jones <michael.peyton-jones@iohk.io> Co-authored-by: Marcin Szamotulski <coot@coot.me>
Resolves #4614