haskellPackages.mbox: fix build for time >= 1.10

Patch proposed to upstream via email, using a trivial replacement
as suggested in the time documentation.
This commit is contained in:
sternenseemann 2022-11-22 19:25:02 +01:00
parent 58b8532158
commit 26f659e65f
2 changed files with 56 additions and 0 deletions

View file

@ -170,6 +170,10 @@ self: super: {
hoodle-core = dontHaddock super.hoodle-core;
hsc3-db = dontHaddock super.hsc3-db;
# Fix build with time >= 1.10 while retaining compat with time < 1.9
mbox = appendPatch ./patches/mbox-time-1.10.patch
(overrideCabal { editedCabalFile = null; revision = null; } super.mbox);
# Too strict bounds on base, optparse-applicative: https://github.com/edsko/friendly/issues/5
friendly = doJailbreak super.friendly;

View file

@ -0,0 +1,52 @@
diff -rN -u old-mbox/Data/MBox/String.hs new-mbox/Data/MBox/String.hs
--- old-mbox/Data/MBox/String.hs 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/Data/MBox/String.hs 2022-11-22 19:14:52.332543098 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
{- |
@@ -31,7 +32,11 @@
-- | Reads a date header as a UTCTime
parseDateHeader :: String -> Maybe UTCTime
parseDateHeader header = listToMaybe . catMaybes $ map tryParse formats where
+#if MIN_VERSION_time(1,9,0)
+ tryParse f = parseTimeM True LC.defaultTimeLocale f header
+#else
tryParse f = parseTime LC.defaultTimeLocale f header
+#endif
formats =
[ "%a, %_d %b %Y %T %z"
, "%a, %_d %b %Y %T %Z"
diff -rN -u old-mbox/Data/MBox.hs new-mbox/Data/MBox.hs
--- old-mbox/Data/MBox.hs 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/Data/MBox.hs 2022-11-22 19:14:52.332543098 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE ViewPatterns #-}
-----------------------------------------------------------------------------
@@ -34,7 +35,11 @@
parseDateHeader :: T.Text -> Maybe UTCTime
parseDateHeader txt = listToMaybe . catMaybes $ map tryParse formats where
header = T.unpack txt
+#if MIN_VERSION_time(1,9,0)
+ tryParse f = parseTimeM True LC.defaultTimeLocale f header
+#else
tryParse f = parseTime LC.defaultTimeLocale f header
+#endif
formats =
[ "%a, %_d %b %Y %T %z"
, "%a, %_d %b %Y %T %Z"
diff -rN -u old-mbox/mbox.cabal new-mbox/mbox.cabal
--- old-mbox/mbox.cabal 2022-11-22 19:14:52.332543098 +0100
+++ new-mbox/mbox.cabal 2022-11-22 19:14:52.332543098 +0100
@@ -13,7 +13,7 @@
Cabal-Version: >= 1.6
library
- build-depends: base >= 4, base < 6, safe, time < 1.9, time-locale-compat, text
+ build-depends: base >= 4, base < 6, safe, time, time-locale-compat, text
exposed-modules: Data.MBox, Data.MBox.String
ghc-options: -Wall