[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
12/24: gnu: hedgewars: Fix build.
From: |
guix-commits |
Subject: |
12/24: gnu: hedgewars: Fix build. |
Date: |
Fri, 8 Oct 2021 03:20:46 -0400 (EDT) |
lbraun pushed a commit to branch master
in repository guix.
commit 2a1b6c0dbf234161a860a2b5a916cf5ef9795b18
Author: Lars-Dominik Braun <lars@6xq.net>
AuthorDate: Wed Sep 29 13:35:42 2021 +0200
gnu: hedgewars: Fix build.
* gnu/packages/patches/hedgewars-network-bsd.patch: Import upstream patch.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/games.scm (hedgewars): Use it.
---
gnu/local.mk | 1 +
gnu/packages/games.scm | 1 +
gnu/packages/patches/hedgewars-network-bsd.patch | 150 +++++++++++++++++++++++
3 files changed, 152 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 1d46738..84afac3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1252,6 +1252,7 @@ dist_patch_DATA =
\
%D%/packages/patches/hdf-eos5-remove-gctp.patch \
%D%/packages/patches/hdf-eos5-fix-szip.patch \
%D%/packages/patches/hdf-eos5-fortrantests.patch \
+ %D%/packages/patches/hedgewars-network-bsd.patch \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-cross.patch \
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4d84dd2..5549441 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -9343,6 +9343,7 @@ play with up to four players simultaneously. It has
network support.")
(method url-fetch)
(uri (string-append
"https://www.hedgewars.org/download/releases/"
"hedgewars-src-" version ".tar.bz2"))
+ (patches (search-patches "hedgewars-network-bsd.patch"))
(sha256
(base32
"0nqm9w02m0xkndlsj6ys3wr0ik8zc14zgilq7k6fwjrf3zk385i1"))))
diff --git a/gnu/packages/patches/hedgewars-network-bsd.patch
b/gnu/packages/patches/hedgewars-network-bsd.patch
new file mode 100644
index 0000000..311ce8b
--- /dev/null
+++ b/gnu/packages/patches/hedgewars-network-bsd.patch
@@ -0,0 +1,150 @@
+From f813f3d5b63bb5be1b5e0b44930e77656c547aad Mon Sep 17 00:00:00 2001
+From: Jens Petersen <none@none>
+Date: Wed, 8 Jul 2020 17:02:45 +0300
+Subject: [PATCH] update server network
+
+---
+ gameServer/Actions.hs | 2 +-
+ gameServer/CMakeLists.txt | 3 ++-
+ gameServer/ClientIO.hs | 4 ++--
+ gameServer/CoreTypes.hs | 2 +-
+ gameServer/OfficialServer/checker.hs | 5 ++---
+ gameServer/Utils.hs | 6 +-----
+ gameServer/hedgewars-server.cabal | 3 ++-
+ gameServer/hedgewars-server.hs | 5 +++--
+ 8 files changed, 14 insertions(+), 16 deletions(-)
+
+diff --git a/gameServer/Actions.hs b/gameServer/Actions.hs
+index 125d6ea832..c42d17b9a9 100644
+--- a/gameServer/Actions.hs
++++ b/gameServer/Actions.hs
+@@ -709,7 +709,7 @@ processAction RestartServer = do
+ args <- gets (runArgs . serverInfo)
+ io $ do
+ noticeM "Core" "Closing listening socket"
+- sClose sock
++ close sock
+ noticeM "Core" "Spawning new server"
+ _ <- createProcess (proc "./hedgewars-server" args)
+ return ()
+diff --git a/gameServer/CMakeLists.txt b/gameServer/CMakeLists.txt
+index 5f2c882563..e71650c70c 100644
+--- a/gameServer/CMakeLists.txt
++++ b/gameServer/CMakeLists.txt
+@@ -9,7 +9,8 @@ check_haskell_package_exists(base "Control.Exception" mask 1)
+ check_haskell_package_exists(containers "Data.Map" size 1)
+ check_haskell_package_exists(vector "Data.Vector" length 1)
+ check_haskell_package_exists(bytestring "Data.ByteString" pack 1)
+-check_haskell_package_exists(network "Network.BSD" getHostName 0)
++check_haskell_package_exists(network "Network.Socket" defaultHints 0)
++check_haskell_package_exists(network-bsd "Network.BSD" getHostName 0)
+ check_haskell_package_exists(time "Data.Time" getCurrentTime 0)
+ check_haskell_package_exists(mtl "Control.Monad.State" fix 1)
+ check_haskell_package_exists(sandi "Codec.Binary.Base64" encode 1)
+diff --git a/gameServer/ClientIO.hs b/gameServer/ClientIO.hs
+index 46dd40ed9f..0c97bde932 100644
+--- a/gameServer/ClientIO.hs
++++ b/gameServer/ClientIO.hs
+@@ -23,7 +23,7 @@ import qualified Control.Exception as Exception
+ import Control.Monad.State
+ import Control.Concurrent.Chan
+ import Control.Concurrent
+-import Network
++import Network.Socket hiding (recv)
+ import Network.Socket.ByteString
+ import qualified Data.ByteString.Char8 as B
+ ----------------
+@@ -90,7 +90,7 @@ clientSendLoop s tId chan ci = do
+ sendAll s $ B.unlines answer `B.snoc` '\n'
+
+ if isQuit answer then
+- sClose s
++ close s
+ else
+ clientSendLoop s tId chan ci
+
+diff --git a/gameServer/CoreTypes.hs b/gameServer/CoreTypes.hs
+index f547df483a..72f35807e3 100644
+--- a/gameServer/CoreTypes.hs
++++ b/gameServer/CoreTypes.hs
+@@ -23,7 +23,7 @@ import Control.Concurrent
+ import Data.Word
+ import qualified Data.Map as Map
+ import Data.Time
+-import Network
++import Network.Socket
+ import Data.Function
+ import Data.ByteString.Char8 as B
+ import Data.Unique
+diff --git a/gameServer/OfficialServer/checker.hs
b/gameServer/OfficialServer/checker.hs
+index 37df3208b9..b4ecb8fc57 100644
+--- a/gameServer/OfficialServer/checker.hs
++++ b/gameServer/OfficialServer/checker.hs
+@@ -28,8 +28,7 @@ import System.Directory
+ import Control.Monad.State
+ import Control.Concurrent.Chan
+ import Control.Concurrent
+-import Network
+-import Network.BSD
++import Network.BSD hiding (recv)
+ import Network.Socket hiding (recv, sClose)
+ import Network.Socket.ByteString
+ import qualified Data.ByteString.Char8 as B
+@@ -207,7 +206,7 @@ main = withSocketsDo . forever $ do
+
+ Exception.bracket
+ setupConnection
+- (\s -> noticeM "Core" "Shutting down" >> sClose s)
++ (\s -> noticeM "Core" "Shutting down" >> close s)
+ (session login password (d ++ "/.hedgewars") exeFullname dataPrefix)
+ where
+ setupConnection = do
+diff --git a/gameServer/Utils.hs b/gameServer/Utils.hs
+index 3d81b7f7c6..9fd80c01ba 100644
+--- a/gameServer/Utils.hs
++++ b/gameServer/Utils.hs
+@@ -41,11 +41,7 @@ import CoreTypes
+
+
+ sockAddr2String :: SockAddr -> IO B.ByteString
+-sockAddr2String (SockAddrInet _ hostAddr) = liftM B.pack $ inet_ntoa hostAddr
+-sockAddr2String (SockAddrInet6 _ _ (a, b, c, d) _) =
+- return $ B.pack $ (foldr1 (.)
+- $ List.intersperse (':':)
+- $ concatMap (\n -> (\(a0, a1) -> [showHex a0, showHex a1]) $ divMod n
65536) [a, b, c, d]) []
++sockAddr2String = liftM (B.pack . fromJust . fst) . getNameInfo [] True False
+
+ maybeRead :: Read a => String -> Maybe a
+ maybeRead s = case reads s of
+diff --git a/gameServer/hedgewars-server.cabal
b/gameServer/hedgewars-server.cabal
+index 3c7f2418c9..9f764fd997 100644
+--- a/gameServer/hedgewars-server.cabal
++++ b/gameServer/hedgewars-server.cabal
+@@ -57,7 +57,8 @@ Executable checker
+ containers,
+ vector,
+ bytestring,
+- network >= 2.3 && < 3.0,
++ network >= 2.3,
++ network-bsd,
+ mtl >= 2,
+ sandi,
+ hslogger,
+diff --git a/gameServer/hedgewars-server.hs b/gameServer/hedgewars-server.hs
+index e47ae2891d..7e6ab8fa38 100644
+--- a/gameServer/hedgewars-server.hs
++++ b/gameServer/hedgewars-server.hs
+@@ -50,10 +50,11 @@ server si = do
+ proto <- getProtocolNumber "tcp"
+ E.bracket
+ (socket AF_INET Stream proto)
+- sClose
++ close
+ (\sock -> do
+ setSocketOption sock ReuseAddr 1
+- bindSocket sock (SockAddrInet (listenPort si) iNADDR_ANY)
++ iNADDR_ANY <- addrAddress . head <$> getAddrInfo Nothing (Just
"0") (Just (show (listenPort si)))
++ bind sock iNADDR_ANY
+ listen sock maxListenQueue
+ startServer si{serverSocket = Just sock}
+ )
- 03/24: import: stackage: Update %default-lts-version to 18.10., (continued)
- 03/24: import: stackage: Update %default-lts-version to 18.10., guix-commits, 2021/10/08
- 02/24: gnu: ghc-8: Update to 8.10., guix-commits, 2021/10/08
- 06/24: build-system/haskell: Do not rely on compiler name., guix-commits, 2021/10/08
- 04/24: import: hackage: Update GHC’s standard libraries., guix-commits, 2021/10/08
- 08/24: import: hackage: Support mirror:// URLs, guix-commits, 2021/10/08
- 05/24: import: stackage: Support input changes., guix-commits, 2021/10/08
- 09/24: build-system/haskell: Explain failure., guix-commits, 2021/10/08
- 07/24: build-system/haskell: Accept line breaks in config files., guix-commits, 2021/10/08
- 10/24: gnu: Update Haskell ecosystem., guix-commits, 2021/10/08
- 11/24: gnu: cabal-install: Build with GHC 8.10., guix-commits, 2021/10/08
- 12/24: gnu: hedgewars: Fix build.,
guix-commits <=
- 15/24: gnu: idris: Fix build., guix-commits, 2021/10/08
- 13/24: gnu: ruby-pandoc-ruby: Disable tests., guix-commits, 2021/10/08
- 14/24: gnu: ghc-silently: Remove unused input., guix-commits, 2021/10/08
- 16/24: gnu: ngless: Fix build., guix-commits, 2021/10/08
- 17/24: gnu: python-pypandoc: Upgrade to 1.6.4., guix-commits, 2021/10/08
- 18/24: gnu: ghc-repline: Remove version 0.2.0.0., guix-commits, 2021/10/08
- 19/24: gnu: ghc-haskeline: Remove version postfix from variable name., guix-commits, 2021/10/08
- 22/24: gnu: pigx-chipseq: Remove dependency on pandoc-citeproc., guix-commits, 2021/10/08
- 20/24: gnu: pigx-bsseq: Remove dependency on pandoc-citeproc., guix-commits, 2021/10/08
- 21/24: gnu: pigx-sars-cov2-ww: Remove dependency on pandoc-citeproc., guix-commits, 2021/10/08