Description of problem: I am working now on updating Fedora's Haskell packages to ghc-8.8 and Stackage LTS 16. In particular this means updating the ghc-network package to major version 3 and also the new ghc-network-bsd package which was split out from network. Hedgewars server is using some parts of the deprecated API from network 2, so it will need to have some changes or patch in order to build for F33. Note that ghc-8.8 has not landed yet in Koji or Rawhide: though you can use the ghc:8.8 module with cabal-install to test this. Version-Release number of selected component (if applicable): hedgewars-1.0.0 ghc-8.8.3 ghc-network-3.1.1.1 ghc-network-bsd-2.8.1.0 Steps to Reproduce: 1. fedpkg local Actual results: Cannot find Network module Expected results: to build Additional info: I will attach a rough untested draft patch which should make it compile with network3 + network-bsd, but something like this should really be pushed upstream or at least tested first. This is an early heads-up, to give you more time to report/look into this: I expect the Haskell rebase to land in Rawhide within about 2 weeks, ahead of the Mass Rebuild, thanks!
(Also just noting it would be better if gameServer used hedgewars-server.cabal rather than ghc --make to build. This would avoid module ambiguities and some of the extra cmake hoops.)
Created attachment 1699592 [details] hedgewars-1.0.0-server-network3.patch I am not a network programmer - this may need some tweaks to work correctly.
Also this change to the spec file: modified hedgewars.spec @@ -20,6 +20,8 @@ Patch6: rpath-fix.patch Patch8: hedgewars-cmake-ghc8-mask.patch # Try to use gcc instead of clang Patch9: hedgewars-clang.patch +# Haskell network-3 +Patch10: hedgewars-1.0.0-server-network3.patch BuildRequires: cmake gcc-c++ fpc desktop-file-utils BuildRequires: libatomic @@ -53,6 +55,7 @@ Summary: Standalone server for hedgewars Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: ghc-stm-devel BuildRequires: ghc-network-devel +BuildRequires: ghc-network-bsd-devel BuildRequires: ghc-utf8-string-devel BuildRequires: ghc-hslogger-devel BuildRequires: ghc-deepseq-devel
Ok, I'll take a look when I can. I have posted to the hedgewars support forum to get their input. Also, would not a copr make it easier for test builds? You can easily craft a mock repo from it. Miro has provided those for the python updates. I really know nothing about Haskell.
(In reply to Richard Shaw from comment #4) > Ok, I'll take a look when I can. I have posted to the hedgewars support > forum to get their input. Thanks > Also, would not a copr make it easier for test builds? You can easily craft > a mock repo from it. Miro has provided those for the python updates. I > really know nothing about Haskell. You are right - it would help too, but basically Hedgewars is about the only "out-of-band" Haskell package in Fedora. :) But I would like to it do - we have over 500 packages in Fedora - the main problem is just lack of time. :)
Also if needed I can certainly help with scripting how to test this locally. Anyway I think my patch is not too wrong, but I am not certain about all the adddress handling. (Just for my reference: https://www.hedgewars.org/node/9167)
Just another heads-up that the big Haskell update push for F33 is happening now in Rawhide. https://bodhi.fedoraproject.org/updates/FEDORA-2020-ff060f7bec
I asked for help from upstream a few weeks ago and just pinged them again. https://www.hedgewars.org/node/9167?page=0
I saw they have integrated Jens Petersen's patch in their upstream mercurial repository, so I guess we should proceed with it. I'm currently preparing a patch that also fixes an unrelated build failure due to the CMAKE out-of-source build change.
I committed the patch and my CMAKE out-of-source build fixes. Koji scratch build here: https://koji.fedoraproject.org/koji/taskinfo?taskID=47571435 Now I get this build error, probably due to missing dependency: -- Found GHC: /usr/bin/ghc -- Looking for Haskell package containers ... -- Looking for Haskell package containers - found -- Looking for Haskell package vector ... -- Looking for Haskell package vector - found -- Looking for Haskell package bytestring ... -- Looking for Haskell package bytestring - found -- Looking for Haskell package network ... -- Looking for Haskell package network - found -- Looking for Haskell package network-bsd ... -- Looking for Haskell package network-bsd - found -- Looking for Haskell package time ... -- Looking for Haskell package time - found -- Looking for Haskell package mtl ... -- Looking for Haskell package mtl - found -- Looking for Haskell package sandi ... -- Looking for Haskell package sandi - found -- Looking for Haskell package hslogger ... -- Looking for Haskell package hslogger - found -- Looking for Haskell package process ... -- Looking for Haskell package process - not found CMake Error at cmake_modules/CheckHaskellPackageExists.cmake:44 (message): Haskell package 'process' required Call Stack (most recent call first): gameServer/CMakeLists.txt:18 (check_haskell_package_exists) -- Configuring incomplete, errors occurred! See also "/builddir/build/BUILD/hedgewars-src-1.0.0/x86_64-redhat-linux-gnu/CMakeFiles/CMakeOutput.log". See also "/builddir/build/BUILD/hedgewars-src-1.0.0/x86_64-redhat-linux-gnu/CMakeFiles/CMakeError.log". error: Bad exit status from /var/tmp/rpm-tmp.LCsEit (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.LCsEit (%build)
# dnf repoquery --whatprovides ghc-devel\* | grep process ghc-process-devel-0:1.6.5.0-102.fc32.x86_64 ghc-typed-process-devel-0:0.2.6.0-1.fc32.x86_64 # dnf repoquery --provides ghc-process-devel Last metadata expiration check: 0:00:20 ago on Tue 21 Jul 2020 10:43:28 AM CDT. ghc-devel(process-1.6.5.0) ghc-process-devel = 1.6.5.0-102.fc32 ghc-process-devel(x86-64) = 1.6.5.0-102.fc32 ghc-process-static = 1.6.5.0-102.fc32 ghc-process-static(x86-64) = 1.6.5.0-102.fc32 You can add a BR for the package directly. It probably SHOULD be in the form of "ghc-devel(process)" but with the embedded version I don't think it would work. The provides would be more useful in dnf/rpm if it was in the form: ghc-devel(process) = 1.6.5.0
Added BuildRequires to the package directly. Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=47580266
Looks good to me, I would go ahead and do an official build.
Ok, done: https://koji.fedoraproject.org/koji/buildinfo?buildID=1544622
Thanks!
This bug appears to have been reported against 'rawhide' during the Fedora 33 development cycle. Changing version to 33.
Update is in stable, closing.