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 2023-04-04 21:20:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hackage-security (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-hackage-security.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-hackage-security"

Tue Apr  4 21:20:13 2023 rev:28 rq:1075888 version:0.6.2.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-hackage-security/ghc-hackage-security.changes    
    2022-10-13 15:42:10.106740647 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-hackage-security.new.19717/ghc-hackage-security.changes
     2023-04-04 21:20:26.597199154 +0200
@@ -1,0 +2,44 @@
+Thu Mar 30 17:06:54 UTC 2023 - Peter Simons <[email protected]>
+
+- Updated spec file to conform with ghc-rpm-macros-2.5.2.
+
+-------------------------------------------------------------------
+Fri Mar 17 00:23:36 UTC 2023 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.3 revision 3.
+  Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
+Wed Feb 22 18:24:12 UTC 2023 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.3 revision 2.
+  Upstream has revised the Cabal build instructions on Hackage.
+
+-------------------------------------------------------------------
+Sat Nov 19 20:56:45 UTC 2022 - Peter Simons <[email protected]>
+
+- Update hackage-security to version 0.6.2.3.
+  0.6.2.3
+  -------
+
+  * Bump base for GHC 9.4 comp
+  * Fix code to *really* support mtl-2.3
+
+  0.6.2.2
+  -------
+
+  * Fix broken compilation of test-suite with Cabal-syntax-3.8.1.0 on Hackage
+  * Huge README updates
+
+  0.6.2.1
+  -------
+
+  * Allow GHC-9.0 (base-4.15) (#265)
+  * Fix running `cabal repl hackage-security` (#263)
+
+  0.6.2.0
+  -------
+
+  * Safely prepare for when cabal factors out Cabal-syntax
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ ghc-hackage-security.spec ++++++
--- /var/tmp/diff_new_pack.Sw9uBs/_old  2023-04-04 21:20:27.585205453 +0200
+++ /var/tmp/diff_new_pack.Sw9uBs/_new  2023-04-04 21:20:27.589205479 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-hackage-security
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,52 +17,87 @@
 
 
 %global pkg_name hackage-security
+%global pkgver %{pkg_name}-%{version}
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.6.1.0
+Version:        0.6.2.3
 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/3.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
+BuildRequires:  ghc-Cabal-prof
+BuildRequires:  ghc-Cabal-syntax-devel
+BuildRequires:  ghc-Cabal-syntax-prof
+BuildRequires:  ghc-base-devel
+BuildRequires:  ghc-base-prof
 BuildRequires:  ghc-base16-bytestring-devel
+BuildRequires:  ghc-base16-bytestring-prof
 BuildRequires:  ghc-base64-bytestring-devel
+BuildRequires:  ghc-base64-bytestring-prof
 BuildRequires:  ghc-bytestring-devel
+BuildRequires:  ghc-bytestring-prof
 BuildRequires:  ghc-containers-devel
+BuildRequires:  ghc-containers-prof
 BuildRequires:  ghc-cryptohash-sha256-devel
+BuildRequires:  ghc-cryptohash-sha256-prof
 BuildRequires:  ghc-directory-devel
+BuildRequires:  ghc-directory-prof
 BuildRequires:  ghc-ed25519-devel
+BuildRequires:  ghc-ed25519-prof
 BuildRequires:  ghc-filepath-devel
+BuildRequires:  ghc-filepath-prof
 BuildRequires:  ghc-lukko-devel
+BuildRequires:  ghc-lukko-prof
 BuildRequires:  ghc-mtl-devel
+BuildRequires:  ghc-mtl-prof
 BuildRequires:  ghc-network-devel
+BuildRequires:  ghc-network-prof
 BuildRequires:  ghc-network-uri-devel
+BuildRequires:  ghc-network-uri-prof
 BuildRequires:  ghc-parsec-devel
+BuildRequires:  ghc-parsec-prof
 BuildRequires:  ghc-pretty-devel
+BuildRequires:  ghc-pretty-prof
 BuildRequires:  ghc-rpm-macros
 BuildRequires:  ghc-tar-devel
+BuildRequires:  ghc-tar-prof
 BuildRequires:  ghc-template-haskell-devel
+BuildRequires:  ghc-template-haskell-prof
 BuildRequires:  ghc-time-devel
+BuildRequires:  ghc-time-prof
 BuildRequires:  ghc-transformers-devel
+BuildRequires:  ghc-transformers-prof
 BuildRequires:  ghc-zlib-devel
+BuildRequires:  ghc-zlib-prof
 ExcludeArch:    %{ix86}
 %if %{with tests}
 BuildRequires:  ghc-QuickCheck-devel
+BuildRequires:  ghc-QuickCheck-prof
 BuildRequires:  ghc-aeson-devel
+BuildRequires:  ghc-aeson-prof
 BuildRequires:  ghc-tasty-devel
 BuildRequires:  ghc-tasty-hunit-devel
+BuildRequires:  ghc-tasty-hunit-prof
+BuildRequires:  ghc-tasty-prof
 BuildRequires:  ghc-tasty-quickcheck-devel
+BuildRequires:  ghc-tasty-quickcheck-prof
 BuildRequires:  ghc-temporary-devel
+BuildRequires:  ghc-temporary-prof
 BuildRequires:  ghc-text-devel
+BuildRequires:  ghc-text-prof
 BuildRequires:  ghc-unordered-containers-devel
+BuildRequires:  ghc-unordered-containers-prof
 BuildRequires:  ghc-vector-devel
+BuildRequires:  ghc-vector-prof
 %endif
 
 %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
+securing the Hackage package server (<https://hackage.haskell.org/>).
+It is based on The Update Framework (<https://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/>).
@@ -87,8 +122,25 @@
 This package provides the Haskell %{pkg_name} library development
 files.
 
+%package -n ghc-%{pkg_name}-doc
+Summary:        Haskell %{pkg_name} library documentation
+Requires:       ghc-filesystem
+BuildArch:      noarch
+
+%description -n ghc-%{pkg_name}-doc
+This package provides the Haskell %{pkg_name} library documentation.
+
+%package -n ghc-%{pkg_name}-prof
+Summary:        Haskell %{pkg_name} profiling library
+Requires:       ghc-%{pkg_name}-devel = %{version}-%{release}
+Supplements:    (ghc-%{pkg_name}-devel and ghc-prof)
+
+%description -n ghc-%{pkg_name}-prof
+This package provides the Haskell %{pkg_name} profiling library.
+
 %prep
 %autosetup -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build
@@ -111,4 +163,9 @@
 %files devel -f %{name}-devel.files
 %doc ChangeLog.md
 
+%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files
+%license LICENSE
+
+%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files
+
 %changelog

++++++ hackage-security-0.6.1.0.tar.gz -> hackage-security-0.6.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.1.0/ChangeLog.md 
new/hackage-security-0.6.2.3/ChangeLog.md
--- old/hackage-security-0.6.1.0/ChangeLog.md   2001-09-09 03:46:40.000000000 
+0200
+++ new/hackage-security-0.6.2.3/ChangeLog.md   2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,28 @@
 See also http://pvp.haskell.org/faq
 
+0.6.2.3
+-------
+
+* Bump base for GHC 9.4 comp
+* Fix code to *really* support mtl-2.3
+
+0.6.2.2
+-------
+
+* Fix broken compilation of test-suite with Cabal-syntax-3.8.1.0 on Hackage
+* Huge README updates
+
+0.6.2.1
+-------
+
+* Allow GHC-9.0 (base-4.15) (#265)
+* Fix running `cabal repl hackage-security` (#263)
+
+0.6.2.0
+-------
+
+* Safely prepare for when cabal factors out Cabal-syntax
+
 0.6.1.0
 -------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hackage-security-0.6.1.0/hackage-security.cabal 
new/hackage-security-0.6.2.3/hackage-security.cabal
--- old/hackage-security-0.6.1.0/hackage-security.cabal 2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/hackage-security.cabal 2001-09-09 
03:46:40.000000000 +0200
@@ -1,12 +1,12 @@
 cabal-version:       1.12
 name:                hackage-security
-version:             0.6.1.0
+version:             0.6.2.3
 
 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
+                     (<https://hackage.haskell.org/>).  It is based on The 
Update
+                     Framework (<https://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/>).
@@ -29,9 +29,11 @@
 homepage:            https://github.com/haskell/hackage-security
 bug-reports:         https://github.com/haskell/hackage-security/issues
 build-type:          Simple
-tested-with:         GHC==8.10.1, GHC==8.8.3, 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
 
+tested-with:
+  GHC==9.4.1, GHC==9.2.4, 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
@@ -48,6 +50,11 @@
   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
@@ -108,15 +115,12 @@
                        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.18,
                        base16-bytestring >= 0.1.1   && < 1.1,
                        base64-bytestring >= 1.0     && < 1.3,
                        bytestring        >= 0.9     && < 0.12,
-                       Cabal             >= 1.14    && < 1.26
-                                      || >= 2.0     && < 2.6
-                                      || >= 3.0     && < 3.8,
                        containers        >= 0.4     && < 0.7,
                        ed25519           >= 0.0     && < 0.1,
                        filepath          >= 1.2     && < 1.5,
@@ -126,9 +130,9 @@
                        -- 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,
+                       template-haskell  >= 2.7     && < 2.20,
                        time              >= 1.2     && < 1.13,
-                       transformers      >= 0.3     && < 0.6,
+                       transformers      >= 0.3     && < 0.7,
                        zlib              >= 0.5     && < 0.7,
                        -- whatever versions are bundled with ghc:
                        ghc-prim
@@ -142,13 +146,21 @@
     build-depends:     mtl        >= 2.1     && < 2.2,
                        mtl-compat >= 0.2     && < 0.3
   else
-    build-depends:     mtl        >= 2.2     && < 2.3
+    build-depends:     mtl        >= 2.2     && < 2.4
 
   if flag(lukko)
     build-depends:     lukko      >= 0.1     && < 0.2
   else
     build-depends:     base       >= 4.10
 
+  if flag(Cabal-syntax) && impl(ghc >= 8.2)
+    build-depends: Cabal-syntax >= 3.7 && < 3.10
+  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
@@ -161,6 +173,7 @@
                        KindSignatures
                        MultiParamTypeClasses
                        NamedFieldPuns
+                       NoImplicitPrelude
                        NoMonomorphismRestriction
                        RankNTypes
                        RecordWildCards
@@ -249,7 +262,6 @@
   -- inherited constraints from lib:hackage-security component
   build-depends:       hackage-security,
                        base,
-                       Cabal,
                        containers,
                        bytestring,
                        network-uri,
@@ -258,13 +270,22 @@
                        time,
                        zlib
 
+  if flag(Cabal-syntax) && impl(ghc >= 8.2)
+    build-depends: Cabal        >= 3.7 && < 3.10,
+                   Cabal-syntax >= 3.7 && < 3.10
+  else
+    build-depends: Cabal        >= 1.14    && < 1.26
+                             || >= 2.0     && < 2.6
+                             || >= 3.0     && < 3.7,
+                   Cabal-syntax <  3.7
+
   -- 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.*,
+                       aeson            == 1.4.* || == 1.5.* || == 2.0.* || == 
2.1.*,
+                       vector           >= 0.12 && <0.14,
                        unordered-containers >=0.2.8.0 && <0.3,
                        temporary        >= 1.2 && < 1.4
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Formats.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Formats.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Formats.hs 
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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
 
@@ -50,7 +51,7 @@
 --
 -- Rather than having a general list here, we enumerate all possibilities.
 -- This means we are very precise about what we expect, and we avoid any 
runtime
--- errors about unexpect format definitions.
+-- errors about unexpected format definitions.
 --
 -- NOTE: If we add additional cases here (for dealing with additional formats)
 -- all calls to @error "inaccessible"@ need to be reevaluated.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/Cache.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Cache.hs
--- 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/Cache.hs    
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Client/Repository/HttpLib.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/HttpLib.hs
--- 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/HttpLib.hs  
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.3/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
@@ -44,7 +45,7 @@
     -- HTTP servers are normally expected to respond to a range request with
     -- a "206 Partial Content" response. However, servers can respond with a
     -- "200 OK" response, sending the entire file instead (for instance, this
-    -- may happen for servers that don't actually support range rqeuests, but
+    -- may happen for servers that don't actually support range requests, but
     -- for which we optimistically assumed they did). Implementations of
     -- 'HttpLib' may accept such a response and inform the @hackage-security@
     -- library that the whole file is being returned; the security library can
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/Local.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Local.hs
--- 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/Local.hs    
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Client/Repository/Remote.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Remote.hs
--- 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository/Remote.hs   
    2001-09-09 03:46:40.000000000 +0200
+++ 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository/Remote.hs   
    2001-09-09 03:46:40.000000000 +0200
@@ -27,9 +27,11 @@
   , fileSizeWithinBounds
   ) where
 
+import MyPrelude
 import Control.Concurrent
 import Control.Exception
-import Control.Monad.Cont
+import Control.Monad (when, unless)
+import Control.Monad.IO.Class (MonadIO)
 import Data.List (nub, intercalate)
 import Data.Typeable
 import Network.URI hiding (uriPath, path)
@@ -336,7 +338,7 @@
         unless rangeSupport $ exit $ CannotUpdate hasGz 
UpdateImpossibleUnsupported
 
         -- We must already have a local file to be updated
-        mCachedIndex <- lift $ Cache.getCachedIndex cfgCache (hasFormatGet 
hasGz)
+        mCachedIndex <- liftIO $ Cache.getCachedIndex cfgCache (hasFormatGet 
hasGz)
         cachedIndex  <- case mCachedIndex of
           Nothing -> exit $ CannotUpdate hasGz UpdateImpossibleNoLocalCopy
           Just fp -> return fp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Repository.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Repository.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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
@@ -180,7 +181,7 @@
     -- * Download the file from the repository and make it available at a
     --   temporary location
     -- * Use the provided file length to protect against endless data attacks.
-    --   (Repositories such as local repositories that are not suspectible to
+    --   (Repositories such as local repositories that are not susceptible to
     --   endless data attacks can safely ignore this argument.)
     -- * Move the file from its temporary location to its permanent location
     --   if verification succeeds.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Verify.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Verify.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Client/Verify.hs  
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/src/Hackage/Security/Client/Verify.hs  
2001-09-09 03:46:40.000000000 +0200
@@ -10,8 +10,11 @@
   , liftIO
   ) where
 
+import MyPrelude
 import Control.Exception
-import Control.Monad.Reader
+import Control.Monad (join, void)
+import Control.Monad.IO.Class (MonadIO, liftIO)
+import Control.Monad.Reader (ReaderT, runReaderT, ask)
 import Data.IORef
 
 import Hackage.Security.Util.IO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Client.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Client.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Client.hs 2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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
@@ -89,7 +89,7 @@
 -- This implements the logic described in Section 5.1, "The client 
application",
 -- of the TUF spec. It checks which of the server metadata has changed, and
 -- downloads all changed metadata to the local cache. (Metadata here refers
--- both to the TUF security metadata as well as the Hackage packge index.)
+-- both to the TUF security metadata as well as the Hackage package index.)
 --
 -- You should pass @Nothing@ for the UTCTime _only_ under exceptional
 -- circumstances (such as when the main server is down for longer than the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/JSON.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/JSON.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/JSON.hs   2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/src/Hackage/Security/JSON.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -38,10 +38,12 @@
   , module Hackage.Security.Util.JSON
   ) where
 
+import MyPrelude
 import Control.Arrow (first, second)
 import Control.Exception
-import Control.Monad.Except
-import Control.Monad.Reader
+import Control.Monad (unless, liftM)
+import Control.Monad.Except (MonadError, Except, ExceptT, runExcept, 
runExceptT, throwError)
+import Control.Monad.Reader (MonadReader, Reader, runReader, local, ask)
 import Data.Functor.Identity
 import Data.Typeable (Typeable)
 import qualified Data.ByteString.Lazy as BS.L
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Key/Env.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Key/Env.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Key/Env.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Key.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Key.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Key.hs    2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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)
@@ -144,8 +145,8 @@
 -- | The key ID of a key, by definition, is the hexdigest of the SHA-256 hash 
of
 -- the canonical JSON form of the key where the private object key is excluded.
 --
--- NOTE: The FromJSON and ToJSON instances for KeyId are ntentially omitted. 
Use
--- writeKeyAsId instead.
+-- NOTE: The FromJSON and ToJSON instances for KeyId are intentionally omitted.
+-- Use writeKeyAsId instead.
 newtype KeyId = KeyId { keyIdString :: String }
   deriving (Show, Eq, Ord)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Common.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Common.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Common.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/FileInfo.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/FileInfo.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/FileInfo.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/FileMap.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/FileMap.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/FileMap.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Header.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Header.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Header.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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)
 
@@ -35,7 +36,7 @@
 -- every file update.
 --
 -- 'Show' and 'Read' instance are defined in terms of the underlying 'Int'
--- (this is use for example by hackage during the backup process).
+-- (this is used for example by Hackage during the backup process).
 newtype FileVersion = FileVersion Int54
   deriving (Eq, Ord, Typeable)
 
@@ -54,7 +55,7 @@
 newtype FileExpires = FileExpires (Maybe UTCTime)
   deriving (Eq, Ord, Show, Typeable)
 
--- | Occassionally it is useful to read only a header from a file.
+-- | Occasionally it is useful to read only a header from a file.
 --
 -- 'HeaderOnly' intentionally only has a 'FromJSON' instance (no 'ToJSON').
 data Header = Header {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Layout/Cache.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Layout/Cache.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Layout/Cache.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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
 
@@ -14,7 +15,7 @@
 -- | Location of the various files we cache
 --
 -- Although the generic TUF algorithms do not care how we organize the cache,
--- we nonetheless specity this here because as long as there are tools which
+-- we nonetheless specify this here because as long as there are tools which
 -- access files in the cache directly we need to define the cache layout.
 -- See also comments for 'defaultCacheLayout'.
 data CacheLayout = CacheLayout {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Layout/Index.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Layout/Index.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Layout/Index.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Layout/Repo.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Layout/Repo.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Layout/Repo.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Mirrors.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Mirrors.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Mirrors.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Paths.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Paths.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Paths.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Patterns.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Patterns.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Patterns.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Patterns.hs   
2001-09-09 03:46:40.000000000 +0200
@@ -1,7 +1,7 @@
 -- | Patterns and replacements
 --
 -- NOTE: This module was developed to prepare for proper delegation (#39).
--- It is currently unusued.
+-- It is currently unused.
 {-# LANGUAGE CPP #-}
 #if __GLASGOW_HASKELL__ >= 800
 {-# LANGUAGE DeriveLift #-}
@@ -26,7 +26,8 @@
   , qqd
   ) where
 
-import Control.Monad.Except
+import MyPrelude
+import Control.Monad (guard)
 import Language.Haskell.TH (Q, Exp)
 import System.FilePath.Posix
 import qualified Language.Haskell.TH.Syntax as TH
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Root.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Root.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Root.hs       
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Signed.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Signed.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Signed.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Snapshot.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Snapshot.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Snapshot.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Targets.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Targets.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Targets.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/TUF/Timestamp.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/TUF/Timestamp.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/TUF/Timestamp.hs  
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Trusted/TCB.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Trusted/TCB.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Trusted/TCB.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/src/Hackage/Security/Trusted/TCB.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -26,8 +26,10 @@
 #endif
   ) where
 
+import MyPrelude
 import Control.Exception
-import Control.Monad.Except
+import Control.Monad (when, unless)
+import Control.Monad.Except (Except, runExcept, throwError)
 import Data.Typeable
 import Data.Time
 import Hackage.Security.TUF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Trusted.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Trusted.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Trusted.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Base64.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Base64.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Base64.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Checked.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Checked.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Checked.hs   
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Exit.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Exit.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Exit.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Exit.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,8 @@
 module Hackage.Security.Util.Exit where
 
-import Control.Monad.Except
+import MyPrelude
+import Control.Monad (liftM)
+import Control.Monad.Except (ExceptT, runExceptT, throwError)
 
 
{-------------------------------------------------------------------------------
   Auxiliary: multiple exit points
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hackage-security-0.6.1.0/src/Hackage/Security/Util/IO.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/IO.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/IO.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/JSON.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/JSON.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/JSON.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Lens.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Lens.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Lens.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Path.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Path.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Path.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Pretty.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Pretty.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Pretty.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Some.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Some.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Some.hs      
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/Stack.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/Stack.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/Stack.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Hackage/Security/Util/TypedEmbedded.hs 
new/hackage-security-0.6.2.3/src/Hackage/Security/Util/TypedEmbedded.hs
--- old/hackage-security-0.6.1.0/src/Hackage/Security/Util/TypedEmbedded.hs     
2001-09-09 03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/MyPrelude.hs 
new/hackage-security-0.6.2.3/src/MyPrelude.hs
--- old/hackage-security-0.6.1.0/src/MyPrelude.hs       1970-01-01 
01:00:00.000000000 +0100
+++ new/hackage-security-0.6.2.3/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.1.0/src/Prelude.hs 
new/hackage-security-0.6.2.3/src/Prelude.hs
--- old/hackage-security-0.6.1.0/src/Prelude.hs 2001-09-09 03:46:40.000000000 
+0200
+++ new/hackage-security-0.6.2.3/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.1.0/src/Text/JSON/Canonical.hs 
new/hackage-security-0.6.2.3/src/Text/JSON/Canonical.hs
--- old/hackage-security-0.6.1.0/src/Text/JSON/Canonical.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/hackage-security-0.6.2.3/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.3
x-revision: 3

synopsis:            Hackage security library
description:         The hackage security library provides both server and
                     client utilities for securing the Hackage package server
                     (<https://hackage.haskell.org/>).  It is based on The 
Update
                     Framework (<https://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.6.1
  GHC == 9.4.4
  GHC == 9.2.7
  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.19,
                       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.21,
                       time              >= 1.2     && < 1.13,
                       transformers      >= 0.3     && < 0.7,
                       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.4

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

  if flag(Cabal-syntax) && impl(ghc >= 8.2)
    build-depends: Cabal-syntax >= 3.7 && < 3.12
  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,
                       containers,
                       bytestring,
                       network-uri,
                       tar,
                       text,
                       time,
                       zlib

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

  -- 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.* || == 
2.1.*,
                       vector           >= 0.12 && <0.14,
                       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