ad435d95ca4b
authorDebian Games Team <pkg-games-devel@lists.alioth.debian.org>
Thu, 12 Jan 2017 16:30:21 +0000 (16:30 +0000)
committerGianfranco Costamagna <locutusofborg@debian.org>
Thu, 12 Jan 2017 16:30:21 +0000 (16:30 +0000)
# HG changeset patch
# User unc0rr
# Date 1475346425 -10800
# Node ID ad435d95ca4b5fbffb88a440ea28548d6784d8cf
# Parent  0b8f2116aa26e68d262fb812e6d441c1a3dec145
 - Use sandi instead of dataenc (bugs.debian.org/836686)
 - Only try to import module from the package being tested
   (sometimes packages have modules with equal names, so a test
   for module presence could succeed when you have one package
   installed instead of another)

Gbp-Pq: Name ad435d95ca4b.patch

cmake_modules/CheckHaskellModuleExists.cmake
gameServer/CMakeLists.txt
gameServer/EngineInteraction.hs
gameServer/NetRoutines.hs
gameServer/hedgewars-server.cabal

index 26b681284b52288e4ec782796f57678e1d8e9251..42a318ac6994c9b05220010e06e4f172c3ad6a7b 100644 (file)
@@ -28,6 +28,9 @@ macro(CHECK_HASKELL_MODULE_EXISTS MODULE FUNCTION PARAMCOUNT LIBRARY)
                     "-DMODULE=${MODULE}"
                     "-DFUNCTION=${FUNCTION}"
                     "-DPARAMETERS=${PARAMETERS}"
+                    -hide-all-packages
+                    -package ${LIBRARY}
+                    -package base
                     -cpp
                     -c "${CMAKE_MODULE_PATH}/checkModule.hs"
                     RESULT_VARIABLE COMMAND_RESULT
index 46eaa808e9279af4eefff59b78846a329ff9a623..43bcf238a56f4eaa7d692cecdf9afa642fe023cb 100644 (file)
@@ -13,7 +13,7 @@ check_haskell_module_exists("Text.Show.ByteString" putDigit 1 bytestring-show)
 check_haskell_module_exists("Network.BSD" getHostName 0 network)
 check_haskell_module_exists("Data.Time" getCurrentTime 0 time)
 check_haskell_module_exists("Control.Monad.State" fix 1 mtl)
-check_haskell_module_exists("Codec.Binary.Base64" encode 1 dataenc)
+check_haskell_module_exists("Codec.Binary.Base64" encode 1 sandi)
 check_haskell_module_exists("System.Log.Logger" warningM 1 hslogger)
 check_haskell_module_exists("System.Process" createProcess 3 process)
 check_haskell_module_exists("Data.ByteString.Lazy.UTF8" decode 1 utf8-string)
index e9684ff1a37e1f6857f48673cf224663ebc8e4bc..13646b0f1576f916288aceb142178fbcf4ec46aa 100644 (file)
@@ -59,7 +59,7 @@ decompressWithoutExceptions = finalise
 #endif
 
 toEngineMsg :: B.ByteString -> B.ByteString
-toEngineMsg msg = B.pack $ Base64.encode (fromIntegral (BW.length msg) : BW.unpack msg)
+toEngineMsg msg = Base64.encode (fromIntegral (BW.length msg) `BW.cons` msg)
 
 
 {-fromEngineMsg :: B.ByteString -> Maybe B.ByteString
@@ -81,15 +81,15 @@ splitMessages = L.unfoldr (\b -> if B.null b then Nothing else Just $ B.splitAt
 checkNetCmd :: B.ByteString -> (B.ByteString, B.ByteString, Maybe (Maybe B.ByteString))
 checkNetCmd msg = check decoded
     where
-        decoded = liftM (splitMessages . BW.pack) $ Base64.decode $ B.unpack msg
-        check Nothing = (B.empty, B.empty, Nothing)
-        check (Just msgs) = let (a, b) = (filter isLegal msgs, filter isNonEmpty a) in (encode a, encode b, lft a)
-        encode = B.pack . Base64.encode . BW.unpack . B.concat
+        decoded = liftM splitMessages $ Base64.decode msg
+        check (Left _) = (B.empty, B.empty, Nothing)
+        check (Right msgs) = let (a, b) = (filter isLegal msgs, filter isNonEmpty a) in (encode a, encode b, lft a)
+        encode = Base64.encode . B.concat
         isLegal m = (B.length m > 1) && (flip Set.member legalMessages . B.head . B.tail $ m)
         lft = foldr l Nothing
         l m n = let m' = B.head $ B.tail m; tst = flip Set.member in
                       if not $ tst timedMessages m' then n
-                        else if '+' /= m' then Just Nothing else Just . Just . B.pack . Base64.encode . BW.unpack $ m
+                        else if '+' /= m' then Just Nothing else Just . Just . Base64.encode $ m
         isNonEmpty = (/=) '+' . B.head . B.tail
         legalMessages = Set.fromList $ "M#+LlRrUuDdZzAaSjJ,sNpPwtgfhbc12345" ++ slotMessages
         slotMessages = "\128\129\130\131\132\133\134\135\136\137\138"
index 10be7461b6869d56bacb5546d6c34dd593a9615c..9d0627e5db192d4cc06ac10bb5ea21594c8918f3 100644 (file)
@@ -25,11 +25,8 @@ import Data.Time
 import Control.Monad
 import Data.Unique
 import qualified Codec.Binary.Base64 as Base64
-import qualified Data.ByteString as BW
-import qualified Data.ByteString.Char8 as B
 import qualified Control.Exception as E
 import System.Entropy
-import Data.Either
 -----------------------------
 import CoreTypes
 import Utils
@@ -48,7 +45,7 @@ acceptLoop servSock chan = E.bracket openHandle closeHandle (forever . f)
         sendChan' <- newChan
 
         uid <- newUnique
-        salt <- liftM (B.pack . Base64.encode . BW.unpack) $ hGetEntropy ch 18
+        salt <- liftM Base64.encode $ hGetEntropy ch 18
 
         let newClient =
                 (ClientInfo
index f36a1905bbf74baf4f3b0775eaa52bd44d7c8515..98e45de33f3f9b3945300c3936f40cf27ea8c65b 100644 (file)
@@ -26,7 +26,7 @@ Executable hedgewars-server
     random,
     time,
     mtl >= 2,
-    dataenc,
+    sandi,
     hslogger,
     process,
     deepseq,