Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ghc-hackage-security for 
openSUSE:Factory checked in at 2022-02-26 17:02:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hackage-security (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-hackage-security.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-hackage-security"

Sat Feb 26 17:02:13 2022 rev:25 rq:957679 version:0.6.2.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-hackage-security/ghc-hackage-security.changes    
    2022-02-11 23:10:51.371197023 +0100
+++ 
/work/SRC/openSUSE:Factory/.ghc-hackage-security.new.1958/ghc-hackage-security.changes
      2022-02-26 17:02:44.639542202 +0100
@@ -1,0 +2,16 @@
+Fri Feb 18 15:40:15 UTC 2022 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.1 revision 1.
+  Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
+Thu Feb 17 20:27:39 UTC 2022 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.1.
+  0.6.2.1
+  -------
+
+  * Allow GHC-9.0 (base-4.15) (#265)
+  * Fix running `cabal repl hackage-security` (#263)
+
+-------------------------------------------------------------------

Old:
----
  hackage-security-0.6.2.0.tar.gz

New:
----
  hackage-security-0.6.2.1.tar.gz
  hackage-security.cabal

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-hackage-security.spec ++++++
--- /var/tmp/diff_new_pack.nvY2a1/_old  2022-02-26 17:02:45.195542290 +0100
+++ /var/tmp/diff_new_pack.nvY2a1/_new  2022-02-26 17:02:45.199542291 +0100
@@ -19,12 +19,13 @@
 %global pkg_name hackage-security
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.6.2.0
+Version:        0.6.2.1
 Release:        0
 Summary:        Hackage security library
 License:        BSD-3-Clause
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
+Source1:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-Cabal-syntax-devel
 BuildRequires:  ghc-base16-bytestring-devel
@@ -90,6 +91,7 @@
 
 %prep
 %autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ hackage-security-0.6.2.0.tar.gz -> hackage-security-0.6.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/ChangeLog.md 
new/hackage-security-0.6.2.1/ChangeLog.md
--- old/hackage-security-0.6.2.0/ChangeLog.md   2001-09-09 03:46:40.000000000 
+0200
+++ new/hackage-security-0.6.2.1/ChangeLog.md   2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,11 @@
 See also http://pvp.haskell.org/faq
 
+0.6.2.1
+-------
+
+* Allow GHC-9.0 (base-4.15) (#265)
+* Fix running `cabal repl hackage-security` (#263)
+
 0.6.2.0
 -------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/hackage-security.cabal 
new/hackage-security-0.6.2.1/hackage-security.cabal
--- old/hackage-security-0.6.2.0/hackage-security.cabal 2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/hackage-security.cabal 2001-09-09 
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 cabal-version:       1.12
 name:                hackage-security
-version:             0.6.2.0
+version:             0.6.2.1
 
 synopsis:            Hackage security library
 description:         The hackage security library provides both server and
@@ -113,9 +113,9 @@
                        Hackage.Security.Util.Lens
                        Hackage.Security.Util.Stack
                        Hackage.Security.Util.TypedEmbedded
-                       Prelude
+                       MyPrelude
   -- We support ghc 7.4 (bundled with Cabal 1.14) and up
-  build-depends:       base              >= 4.5     && < 4.17,
+  build-depends:       base              >= 4.5     && < 4.16,
                        base16-bytestring >= 0.1.1   && < 1.1,
                        base64-bytestring >= 1.0     && < 1.3,
                        bytestring        >= 0.9     && < 0.12,
@@ -171,6 +171,7 @@
                        KindSignatures
                        MultiParamTypeClasses
                        NamedFieldPuns
+                       NoImplicitPrelude
                        NoMonomorphismRestriction
                        RankNTypes
                        RecordWildCards
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Formats.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Formats.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Formats.hs 
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Formats.hs 
2001-09-09 03:46:40.000000000 +0200
@@ -17,6 +17,7 @@
   , formatsLookup
   ) where
 
+import MyPrelude
 import Hackage.Security.Util.Stack
 import Hackage.Security.Util.TypedEmbedded
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Cache.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Cache.hs
--- 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Cache.hs    
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Cache.hs    
    2001-09-09 03:46:40.000000000 +0200
@@ -15,6 +15,7 @@
   , lockCacheWithLogger
   ) where
 
+import MyPrelude
 import Control.Exception
 import Control.Monad
 import Control.Monad.IO.Class
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/HttpLib.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/HttpLib.hs
--- 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/HttpLib.hs  
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/HttpLib.hs  
    2001-09-09 03:46:40.000000000 +0200
@@ -11,6 +11,7 @@
   , bodyReaderFromBS
   ) where
 
+import MyPrelude
 import Data.IORef
 import Network.URI hiding (uriPath, path)
 import qualified Data.ByteString      as BS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Local.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Local.hs
--- 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Local.hs    
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Local.hs    
    2001-09-09 03:46:40.000000000 +0200
@@ -5,6 +5,7 @@
   , withRepository
   ) where
 
+import MyPrelude
 import Hackage.Security.Client.Formats
 import Hackage.Security.Client.Repository
 import Hackage.Security.Client.Repository.Cache
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Remote.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Remote.hs
--- 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository/Remote.hs   
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository/Remote.hs   
    2001-09-09 03:46:40.000000000 +0200
@@ -27,6 +27,7 @@
   , fileSizeWithinBounds
   ) where
 
+import MyPrelude
 import Control.Concurrent
 import Control.Exception
 import Control.Monad.Cont
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Repository.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Repository.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -30,6 +30,7 @@
   , mustCache
   ) where
 
+import MyPrelude
 import Control.Exception
 import Data.Typeable (Typeable)
 import qualified Codec.Archive.Tar.Index as Tar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Verify.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Verify.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Client/Verify.hs  
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Client/Verify.hs  
2001-09-09 03:46:40.000000000 +0200
@@ -10,6 +10,7 @@
   , liftIO
   ) where
 
+import MyPrelude
 import Control.Exception
 import Control.Monad.Reader
 import Data.IORef
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Client.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Client.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Client.hs 2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Client.hs 2001-09-09 
03:46:40.000000000 +0200
@@ -41,7 +41,7 @@
   , LocalFileCorrupted(..)
   ) where
 
-import Prelude hiding (log)
+import MyPrelude hiding (log)
 import Control.Arrow (first)
 import Control.Exception
 import Control.Monad
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/JSON.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/JSON.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/JSON.hs   2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/JSON.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -38,6 +38,7 @@
   , module Hackage.Security.Util.JSON
   ) where
 
+import MyPrelude
 import Control.Arrow (first, second)
 import Control.Exception
 import Control.Monad.Except
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Key/Env.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Key/Env.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Key/Env.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Key/Env.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -12,7 +12,7 @@
   , union
   ) where
 
-import Prelude hiding (lookup, null)
+import MyPrelude hiding (lookup, null)
 import Control.Monad
 import Data.Map (Map)
 import qualified Data.Map as Map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/src/Hackage/Security/Key.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Key.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Key.hs    2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Key.hs    2001-09-09 
03:46:40.000000000 +0200
@@ -25,6 +25,7 @@
   , verify
   ) where
 
+import MyPrelude
 import Control.Monad
 import Data.Functor.Identity
 import Data.Typeable (Typeable)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Common.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Common.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Common.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Common.hs     
2001-09-09 03:46:40.000000000 +0200
@@ -6,6 +6,7 @@
   , KeyThreshold(..)
   ) where
 
+import MyPrelude
 import Hackage.Security.JSON
 
 
{-------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/FileInfo.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/FileInfo.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/FileInfo.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/FileInfo.hs   
2001-09-09 03:46:40.000000000 +0200
@@ -13,7 +13,7 @@
   , Int54
   ) where
 
-import Prelude hiding (lookup)
+import MyPrelude hiding (lookup)
 import Data.Map (Map)
 import qualified Crypto.Hash.SHA256   as SHA256
 import qualified Data.Map             as Map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/FileMap.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/FileMap.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/FileMap.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/FileMap.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -18,7 +18,7 @@
   , fileMapChanges
   ) where
 
-import Prelude hiding (lookup)
+import MyPrelude hiding (lookup)
 import Control.Arrow (second)
 import Data.Map (Map)
 import qualified Data.Map as Map
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Header.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Header.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Header.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Header.hs     
2001-09-09 03:46:40.000000000 +0200
@@ -12,6 +12,7 @@
   , versionIncrement
   ) where
 
+import MyPrelude
 import Data.Time
 import Data.Typeable (Typeable)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Cache.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Cache.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Cache.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Cache.hs       
2001-09-09 03:46:40.000000000 +0200
@@ -4,6 +4,7 @@
   , cabalCacheLayout
   ) where
 
+import MyPrelude
 import Hackage.Security.TUF.Paths
 import Hackage.Security.Util.Path
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Index.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Index.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Index.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Index.hs       
2001-09-09 03:46:40.000000000 +0200
@@ -9,6 +9,7 @@
   , indexLayoutPkgPrefs
   ) where
 
+import MyPrelude
 import Distribution.Package
 import Distribution.Text
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Repo.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Repo.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Layout/Repo.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Layout/Repo.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -5,6 +5,7 @@
   , cabalLocalRepoLayout
   ) where
 
+import MyPrelude
 import Distribution.Package
 import Distribution.Text
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Mirrors.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Mirrors.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Mirrors.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Mirrors.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -9,6 +9,7 @@
   , describeMirror
   ) where
 
+import MyPrelude
 import Control.Monad.Except
 import Network.URI
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Paths.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Paths.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Paths.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Paths.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -14,6 +14,7 @@
   , anchorCachePath
   ) where
 
+import MyPrelude
 import Hackage.Security.Util.Path
 import Hackage.Security.Util.Pretty
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Patterns.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Patterns.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Patterns.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Patterns.hs   
2001-09-09 03:46:40.000000000 +0200
@@ -26,6 +26,7 @@
   , qqd
   ) where
 
+import MyPrelude
 import Control.Monad.Except
 import Language.Haskell.TH (Q, Exp)
 import System.FilePath.Posix
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Root.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Root.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Root.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Root.hs       
2001-09-09 03:46:40.000000000 +0200
@@ -6,6 +6,7 @@
   , RoleSpec(..)
   ) where
 
+import MyPrelude
 import Hackage.Security.JSON
 import Hackage.Security.Key
 import Hackage.Security.Key.Env (KeyEnv)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Signed.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Signed.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Signed.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Signed.hs     
2001-09-09 03:46:40.000000000 +0200
@@ -27,6 +27,7 @@
   , toPreSignatures
   ) where
 
+import MyPrelude
 import Control.Monad
 import Data.Functor.Identity
 import qualified Data.ByteString      as BS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Snapshot.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Snapshot.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Snapshot.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Snapshot.hs   
2001-09-09 03:46:40.000000000 +0200
@@ -3,6 +3,7 @@
     Snapshot(..)
   ) where
 
+import MyPrelude
 import Control.Monad.Except
 import Control.Monad.Reader
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Targets.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Targets.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Targets.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Targets.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -8,6 +8,7 @@
   , targetsLookup
   ) where
 
+import MyPrelude
 import Hackage.Security.JSON
 import Hackage.Security.Key
 import Hackage.Security.Key.Env (KeyEnv)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Timestamp.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Timestamp.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/TUF/Timestamp.hs  
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/TUF/Timestamp.hs  
2001-09-09 03:46:40.000000000 +0200
@@ -3,6 +3,7 @@
     Timestamp(..)
   ) where
 
+import MyPrelude
 import Control.Monad.Except
 import Control.Monad.Reader
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Trusted/TCB.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Trusted/TCB.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Trusted/TCB.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Trusted/TCB.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -26,6 +26,7 @@
 #endif
   ) where
 
+import MyPrelude
 import Control.Exception
 import Control.Monad.Except
 import Data.Typeable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Trusted.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Trusted.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Trusted.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Trusted.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -12,6 +12,7 @@
   , trustedFileInfoEqual
   ) where
 
+import MyPrelude
 import Data.Function (on)
 import Data.Time
 import Hackage.Security.TUF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Base64.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Base64.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Base64.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Base64.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -4,6 +4,7 @@
   , toByteString
   ) where
 
+import MyPrelude
 import Data.ByteString (ByteString)
 import qualified Data.ByteString.Char8  as C8  -- only called on B64-enc 
strings
 import qualified Data.ByteString.Base64 as B64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Checked.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Checked.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Checked.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Checked.hs   
2001-09-09 03:46:40.000000000 +0200
@@ -25,6 +25,7 @@
   , internalError
   ) where
 
+import MyPrelude
 import Control.Exception (Exception, IOException)
 import qualified Control.Exception as Base
 import Data.Typeable (Typeable)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Exit.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Exit.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Exit.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Exit.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,6 @@
 module Hackage.Security.Util.Exit where
 
+import MyPrelude
 import Control.Monad.Except
 
 
{-------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/IO.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/IO.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/IO.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/IO.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -9,6 +9,7 @@
   , timedIO
   ) where
 
+import MyPrelude
 import Control.Concurrent (threadDelay)
 import Control.Exception
 import Data.Time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/JSON.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/JSON.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/JSON.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/JSON.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -23,6 +23,7 @@
   , Int54
   ) where
 
+import MyPrelude
 import Control.Monad (liftM)
 import Data.Maybe (catMaybes)
 import Data.Map (Map)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Lens.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Lens.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Lens.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Lens.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -14,6 +14,7 @@
   , set
   ) where
 
+import MyPrelude
 import Control.Applicative
 import Data.Functor.Identity
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Path.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Path.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Path.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Path.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -83,6 +83,7 @@
   , IO.hSeek
   ) where
 
+import MyPrelude
 import Control.Monad
 import Data.List (isPrefixOf)
 import System.IO (IOMode(..), BufferMode(..), Handle, SeekMode(..))
@@ -294,7 +295,7 @@
 fromAbsoluteFilePath :: FilePath -> Path Absolute
 fromAbsoluteFilePath fp
   | FP.Native.isAbsolute fp = mkPathNative fp
-  | otherwise               = error "fromAbsoluteFilePath: not an absolute 
path"
+  | otherwise               = error ("fromAbsoluteFilePath: not an absolute 
path: " ++ fp)
 
 
{-------------------------------------------------------------------------------
   Wrappers around System.IO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Pretty.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Pretty.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Pretty.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Pretty.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -3,6 +3,8 @@
     Pretty(..)
   ) where
 
+import MyPrelude
+
 -- | Produce a human-readable string
 class Pretty a where
   pretty :: a -> String
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Some.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Some.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Some.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Some.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -19,6 +19,7 @@
 #endif
   ) where
 
+import MyPrelude
 #if MIN_VERSION_base(4,7,0)
 import Data.Typeable (Typeable)
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Stack.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Stack.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/Stack.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/Stack.hs     
2001-09-09 03:46:40.000000000 +0200
@@ -3,6 +3,8 @@
     (:-)(..)
   ) where
 
+import MyPrelude
+
 data h :- t = h :- t
   deriving (Eq, Show)
 infixr 5 :-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.2.0/src/Hackage/Security/Util/TypedEmbedded.hs 
new/hackage-security-0.6.2.1/src/Hackage/Security/Util/TypedEmbedded.hs
--- old/hackage-security-0.6.2.0/src/Hackage/Security/Util/TypedEmbedded.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Hackage/Security/Util/TypedEmbedded.hs     
2001-09-09 03:46:40.000000000 +0200
@@ -7,6 +7,8 @@
   , AsType(..)
   ) where
 
+import MyPrelude
+
 -- | Type equality proofs
 --
 -- This is a direct copy of "type-equality:Data.Type.Equality"; if we don't
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/src/MyPrelude.hs 
new/hackage-security-0.6.2.1/src/MyPrelude.hs
--- old/hackage-security-0.6.2.0/src/MyPrelude.hs       1970-01-01 
01:00:00.000000000 +0100
+++ new/hackage-security-0.6.2.1/src/MyPrelude.hs       2001-09-09 
03:46:40.000000000 +0200
@@ -0,0 +1,31 @@
+-- | Smooth over differences between various ghc versions by making older
+-- preludes look like 4.8.0
+{-# LANGUAGE CPP #-}
+module MyPrelude (
+    module P
+#if !MIN_VERSION_base(4,8,0)
+  , Applicative(..)
+  , Monoid(..)
+  , (<$>)
+  , (<$)
+  , Traversable(traverse)
+  , displayException
+#endif
+  ) where
+
+#if MIN_VERSION_base(4,8,0)
+import Prelude as P
+#else
+#if MIN_VERSION_base(4,6,0)
+import Prelude as P
+#else
+import Prelude as P hiding (catch)
+#endif
+import Control.Applicative
+import Control.Exception (Exception)
+import Data.Monoid
+import Data.Traversable (Traversable(traverse))
+
+displayException :: Exception e => e -> String
+displayException = show
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/src/Prelude.hs 
new/hackage-security-0.6.2.1/src/Prelude.hs
--- old/hackage-security-0.6.2.0/src/Prelude.hs 2001-09-09 03:46:40.000000000 
+0200
+++ new/hackage-security-0.6.2.1/src/Prelude.hs 1970-01-01 01:00:00.000000000 
+0100
@@ -1,32 +0,0 @@
--- | Smooth over differences between various ghc versions by making older
--- preludes look like 4.8.0
-{-# LANGUAGE PackageImports #-}
-{-# LANGUAGE CPP #-}
-module Prelude (
-    module P
-#if !MIN_VERSION_base(4,8,0)
-  , Applicative(..)
-  , Monoid(..)
-  , (<$>)
-  , (<$)
-  , Traversable(traverse)
-  , displayException
-#endif
-  ) where
-
-#if MIN_VERSION_base(4,8,0)
-import "base" Prelude as P
-#else
-#if MIN_VERSION_base(4,6,0)
-import "base" Prelude as P
-#else
-import "base" Prelude as P hiding (catch)
-#endif
-import Control.Applicative
-import Control.Exception (Exception)
-import Data.Monoid
-import Data.Traversable (Traversable(traverse))
-
-displayException :: Exception e => e -> String
-displayException = show
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.2.0/src/Text/JSON/Canonical.hs 
new/hackage-security-0.6.2.1/src/Text/JSON/Canonical.hs
--- old/hackage-security-0.6.2.0/src/Text/JSON/Canonical.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.1/src/Text/JSON/Canonical.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -30,6 +30,7 @@
   , prettyCanonicalJSON
   ) where
 
+import MyPrelude
 import Text.ParserCombinators.Parsec
          ( CharParser, (<|>), (<?>), many, between, sepBy
          , satisfy, char, string, digit, spaces

++++++ hackage-security.cabal ++++++
cabal-version:       1.12
name:                hackage-security
version:             0.6.2.1
x-revision: 1

synopsis:            Hackage security library
description:         The hackage security library provides both server and
                     client utilities for securing the Hackage package server
                     (<http://hackage.haskell.org/>).  It is based on The Update
                     Framework (<http://theupdateframework.com/>), a set of
                     recommendations developed by security researchers at
                     various universities in the US as well as developers on the
                     Tor project (<https://www.torproject.org/>).
                     .
                     The current implementation supports only index signing,
                     thereby enabling untrusted mirrors. It does not yet provide
                     facilities for author package signing.
                     .
                     The library has two main entry points:
                     "Hackage.Security.Client" is the main entry point for
                     clients (the typical example being @cabal@), and
                     "Hackage.Security.Server" is the main entry point for
                     servers (the typical example being @hackage-server@).
license:             BSD3
license-file:        LICENSE
author:              Edsko de Vries
maintainer:          [email protected]
copyright:           Copyright 2015-2022 Well-Typed LLP
category:            Distribution
homepage:            https://github.com/haskell/hackage-security
bug-reports:         https://github.com/haskell/hackage-security/issues
build-type:          Simple

tested-with:
  GHC==9.2.1, GHC==9.0.2,
  GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,
  GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2

extra-source-files:
  ChangeLog.md

source-repository head
  type: git
  location: https://github.com/haskell/hackage-security.git

flag base48
  description: Are we using @base@ 4.8 or later?
  manual: False

flag use-network-uri
  description: Are we using @network-uri@?
  manual: False

flag Cabal-syntax
  description: Are we using Cabal-syntax?
  manual: False
  default: False

flag old-directory
  description: Use @directory@ < 1.2 and @old-time@
  manual:      False
  default:     False

flag mtl21
  description: Use @mtl@ < 2.2 and @mtl-compat@
  manual:      False
  default:     False

flag lukko
  description: Use @lukko@ for file-locking, otherwise use @GHC.IO.Handle.Lock@
  manual:      True
  default:     True

library
  -- Most functionality is exported through the top-level entry points .Client
  -- and .Server; the other exported modules are intended for qualified imports.
  exposed-modules:     Hackage.Security.Client
                       Hackage.Security.Client.Formats
                       Hackage.Security.Client.Repository
                       Hackage.Security.Client.Repository.Cache
                       Hackage.Security.Client.Repository.Local
                       Hackage.Security.Client.Repository.Remote
                       Hackage.Security.Client.Repository.HttpLib
                       Hackage.Security.Client.Verify
                       Hackage.Security.JSON
                       Hackage.Security.Key.Env
                       Hackage.Security.Server
                       Hackage.Security.Trusted
                       Hackage.Security.TUF.FileMap
                       Hackage.Security.Util.Checked
                       Hackage.Security.Util.Path
                       Hackage.Security.Util.Pretty
                       Hackage.Security.Util.Some
                       Text.JSON.Canonical
  other-modules:       Hackage.Security.Key
                       Hackage.Security.Trusted.TCB
                       Hackage.Security.TUF
                       Hackage.Security.TUF.Common
                       Hackage.Security.TUF.FileInfo
                       Hackage.Security.TUF.Header
                       Hackage.Security.TUF.Layout.Cache
                       Hackage.Security.TUF.Layout.Index
                       Hackage.Security.TUF.Layout.Repo
                       Hackage.Security.TUF.Mirrors
                       Hackage.Security.TUF.Paths
                       Hackage.Security.TUF.Patterns
                       Hackage.Security.TUF.Root
                       Hackage.Security.TUF.Signed
                       Hackage.Security.TUF.Snapshot
                       Hackage.Security.TUF.Targets
                       Hackage.Security.TUF.Timestamp
                       Hackage.Security.Util.Base64
                       Hackage.Security.Util.Exit
                       Hackage.Security.Util.IO
                       Hackage.Security.Util.JSON
                       Hackage.Security.Util.Lens
                       Hackage.Security.Util.Stack
                       Hackage.Security.Util.TypedEmbedded
                       MyPrelude
  -- We support ghc 7.4 (bundled with Cabal 1.14) and up
  build-depends:       base              >= 4.5     && < 4.17,
                       base16-bytestring >= 0.1.1   && < 1.1,
                       base64-bytestring >= 1.0     && < 1.3,
                       bytestring        >= 0.9     && < 0.12,
                       containers        >= 0.4     && < 0.7,
                       ed25519           >= 0.0     && < 0.1,
                       filepath          >= 1.2     && < 1.5,
                       parsec            >= 3.1     && < 3.2,
                       pretty            >= 1.0     && < 1.2,
                       cryptohash-sha256 >= 0.11    && < 0.12,
                       -- 0.4.2 introduces TarIndex, 0.4.4 introduces more
                       -- functionality, 0.5.0 changes type of serialise
                       tar               >= 0.5     && < 0.6,
                       template-haskell  >= 2.7     && < 2.19,
                       time              >= 1.2     && < 1.13,
                       transformers      >= 0.3     && < 0.6,
                       zlib              >= 0.5     && < 0.7,
                       -- whatever versions are bundled with ghc:
                       ghc-prim
  if flag(old-directory)
    build-depends:     directory  >= 1.1.0.2 && < 1.2,
                       old-time   >= 1 &&       < 1.2
  else
    build-depends:     directory  >= 1.2 && < 1.4

  if flag(mtl21)
    build-depends:     mtl        >= 2.1     && < 2.2,
                       mtl-compat >= 0.2     && < 0.3
  else
    build-depends:     mtl        >= 2.2     && < 2.3

  if flag(lukko)
    build-depends:     lukko      >= 0.1     && < 0.2
  else
    build-depends:     base       >= 4.10

  if flag(Cabal-syntax)
    build-depends: Cabal-syntax >= 3.7 && < 3.9
  else
    build-depends: Cabal        >= 1.14    && < 1.26
                             || >= 2.0     && < 2.6
                             || >= 3.0     && < 3.7,
                   Cabal-syntax <  3.7

  hs-source-dirs:      src
  default-language:    Haskell2010
  default-extensions:  DefaultSignatures
                       DeriveDataTypeable
                       DeriveFunctor
                       FlexibleContexts
                       FlexibleInstances
                       GADTs
                       GeneralizedNewtypeDeriving
                       KindSignatures
                       MultiParamTypeClasses
                       NamedFieldPuns
                       NoImplicitPrelude
                       NoMonomorphismRestriction
                       RankNTypes
                       RecordWildCards
                       ScopedTypeVariables
                       StandaloneDeriving
                       TupleSections
                       TypeFamilies
                       TypeOperators
                       ViewPatterns
  other-extensions:    BangPatterns
                       CPP
                       OverlappingInstances
                       PackageImports
                       UndecidableInstances

  -- use the new stage1/cross-compile-friendly DeriveLift extension for GHC 8.0+
  if impl(ghc >= 8.0)
    other-extensions: DeriveLift
  else
    other-extensions: TemplateHaskell

  ghc-options:         -Wall

  if flag(base48)
    build-depends: base >= 4.8
  else
    build-depends: base < 4.8, old-locale == 1.0.*

  -- The URI type got split out off the network package after version 2.5, and
  -- moved to a separate network-uri package. Since we don't need the rest of
  -- network here, it would suffice to rely only on network-uri:
  --
  -- > if flag(use-network-uri)
  -- >   build-depends: network-uri >= 2.6 && < 2.7
  -- > else
  -- >   build-depends: network     >= 2.5 && < 2.6
  --
  -- However, if we did the same in hackage-security-HTTP, Cabal would consider
  -- those two flag choices (hackage-security:use-network-uri and
  -- hackage-security-HTTP:use-network-uri) to be completely independent; but
  -- they aren't: if it links hackage-security against network-uri and
  -- hackage-security-HTTP against network, we will get type errors when
  -- hackage-security-HTTP tries to pass a URI to hackage-security.
  --
  -- It might seem we can solve this problem by re-exporting the URI type in
  -- hackage-security and avoid the dependency in hackage-security-HTTP
  -- altogether. However, this merely shifts the problem: hackage-security-HTTP
  -- relies on the HTTP library which--surprise!--makes the same choice between
  -- depending on network or network-uri. Cabal will not notice that we cannot
  -- build hackage-security and hackage-security-HTTP against network-uri but
  -- HTTP against network.
  --
  -- We solve the problem by explicitly relying on network-2.6 when choosing
  -- network-uri. This dependency is redundant, strictly speaking. However, it
  -- serves as a proxy for forcing flag choices: since all packages in a
  -- solution must be linked against the same version of network, having one
  -- version of network in one branch of the conditional and another version of
  -- network in the other branch forces the choice to be consistent throughout.
  -- (Note that the HTTP library does the same thing, though in this case the
  -- dependency in network is not redundant.)
  if flag(use-network-uri)
    build-depends: network-uri >= 2.6 && < 2.7,
                   network     >= 2.6 && < 2.9
                            || >= 3.0 && < 3.2
  else
    build-depends: network     >= 2.5 && < 2.6

  if impl(ghc >= 7.8)
     other-extensions: RoleAnnotations

  if impl(ghc >= 7.10)
     other-extensions: AllowAmbiguousTypes
                       StaticPointers

test-suite TestSuite
  type:                exitcode-stdio-1.0
  main-is:             TestSuite.hs
  other-modules:       TestSuite.HttpMem
                       TestSuite.InMemCache
                       TestSuite.InMemRepo
                       TestSuite.InMemRepository
                       TestSuite.JSON
                       TestSuite.PrivateKeys
                       TestSuite.Util.StrictMVar

  -- inherited constraints from lib:hackage-security component
  build-depends:       hackage-security,
                       base,
                       Cabal,
                       containers,
                       bytestring,
                       network-uri,
                       tar,
                       text,
                       time,
                       zlib

  if flag(Cabal-syntax)
    build-depends: Cabal-syntax

  -- dependencies exclusive to test-suite
  build-depends:       tasty            >= 1.2 && < 1.5,
                       tasty-hunit      == 0.10.*,
                       tasty-quickcheck == 0.10.*,
                       QuickCheck       >= 2.11 && <2.15,
                       aeson            == 1.4.* || == 1.5.* || == 2.0.*,
                       vector           == 0.12.*,
                       unordered-containers >=0.2.8.0 && <0.3,
                       temporary        >= 1.2 && < 1.4

  hs-source-dirs:      tests
  default-language:    Haskell2010
  default-extensions:  FlexibleContexts
                       GADTs
                       KindSignatures
                       RankNTypes
                       RecordWildCards
                       ScopedTypeVariables
  ghc-options:         -Wall

Reply via email to