gnu: ghc-persistent: Fix build on i686-linux.

* gnu/packages/haskell-xyz.scm (ghc-persistent)[source]: Add patch.
* gnu/packages/patches/ghc-persistent-fix-32bit.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I1b2c8419f3136d6c9df772d7c7abdc83a80d6112
This commit is contained in:
Efraim Flashner 2023-11-15 13:35:50 +02:00
parent 879503464f
commit 59fdbbb717
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
3 changed files with 28 additions and 1 deletions

View file

@ -1273,6 +1273,7 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
%D%/packages/patches/ghc-memory-fix-32bit.patch \
%D%/packages/patches/ghc-persistent-fix-32bit.patch \
%D%/packages/patches/ghostscript-CVE-2023-36664.patch \
%D%/packages/patches/ghostscript-CVE-2023-36664-fixup.patch \
%D%/packages/patches/ghostscript-leptonica-hurd.patch \

View file

@ -8895,7 +8895,8 @@ (define-public ghc-persistent
(uri (hackage-uri "persistent" version))
(sha256
(base32
"0z69yvk0rd29dp5qdhi4p587b891y90azrzzpa3g10cxp3gyywvm"))))
"0z69yvk0rd29dp5qdhi4p587b891y90azrzzpa3g10cxp3gyywvm"))
(patches (search-patches "ghc-persistent-fix-32bit.patch"))))
(build-system haskell-build-system)
(properties '((upstream-name . "persistent")))
(inputs (list ghc-conduit

View file

@ -0,0 +1,25 @@
https://sources.debian.org/data/main/h/haskell-persistent/2.13.3.5-2/debian/patches/fix-tests-32-bit
Inspired by: https://github.com/yesodweb/persistent/pull/1429
--- a/test/Database/Persist/THSpec.hs
+++ b/test/Database/Persist/THSpec.hs
@@ -25,6 +25,7 @@ module Database.Persist.THSpec where
import Control.Applicative (Const(..))
import Data.Aeson (decode, encode)
+import Data.Bits (bitSizeMaybe)
import Data.ByteString.Lazy.Char8 ()
import Data.Coerce
import Data.Functor.Identity (Identity(..))
@@ -237,7 +238,10 @@ spec = describe "THSpec" $ do
it "should have usual haskell name" $ do
fieldHaskell `shouldBe` FieldNameHS "Id"
it "should have correct underlying sql type" $ do
- fieldSqlType `shouldBe` SqlInt64
+ fieldSqlType `shouldBe`
+ if bitSizeMaybe (0 :: Int) <= Just 32
+ then SqlInt32
+ else SqlInt64
it "should have correct haskell type" $ do
fieldType `shouldBe` FTTypeCon Nothing "Int"