@@ -27,7 +27,7 @@ import qualified Codec.Compression.GZip as GZip
2727import Data.Aeson (Value (.. ), toJSON )
2828import qualified Data.Aeson.Key as Key
2929import qualified Data.Aeson.KeyMap as KeyMap
30- import Data.ByteString.Lazy (ByteString )
30+ import Data.ByteString.Lazy (LazyByteString , fromStrict )
3131import qualified Data.Foldable as Foldable
3232import qualified Data.Text as Text
3333import Data.Time.Clock (UTCTime , getCurrentTime )
@@ -130,7 +130,7 @@ data CoreFeature = CoreFeature {
130130 -- modification time for the tar entry.
131131 --
132132 -- This runs a `PackageChangeIndexExtra` hook when done.
133- updateArchiveIndexEntry :: forall m . MonadIO m => FilePath -> ByteString -> UTCTime -> m () ,
133+ updateArchiveIndexEntry :: forall m . MonadIO m => FilePath -> LazyByteString -> UTCTime -> m () ,
134134
135135 -- | Notification of package or index changes.
136136 packageChangeHook :: Hook PackageChange () ,
@@ -175,7 +175,7 @@ data PackageChange
175175 | PackageChangeInfo PackageUpdate PkgInfo PkgInfo
176176 -- | A file has changed in the package index tar not covered by any of the
177177 -- other change types.
178- | PackageChangeIndexExtra String ByteString UTCTime
178+ | PackageChangeIndexExtra String LazyByteString UTCTime
179179
180180-- | A predicate to use with `packageChangeHook` and `registerHookJust` for
181181-- keeping other features synchronized with the main package index.
@@ -212,7 +212,7 @@ isPackageDeleteVersion :: Maybe PackageId,
212212isPackageChangeCabalFile :: Maybe (PackageId, CabalFileText),
213213isPackageChangeCabalFileUploadInfo :: Maybe (PackageId, UploadInfo),
214214isPackageChangeTarball :: Maybe (PackageId, PkgTarball),
215- isPackageIndexExtraChange :: Maybe (String, ByteString , UTCTime)
215+ isPackageIndexExtraChange :: Maybe (String, LazyByteString , UTCTime)
216216-}
217217
218218data CoreResource = CoreResource {
@@ -591,7 +591,7 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
591591 runHook_ packageChangeHook (PackageChangeInfo PackageUpdatedUploadTime oldpkginfo newpkginfo)
592592 return True
593593
594- updateArchiveIndexEntry :: MonadIO m => FilePath -> ByteString -> UTCTime -> m ()
594+ updateArchiveIndexEntry :: MonadIO m => FilePath -> LazyByteString -> UTCTime -> m ()
595595 updateArchiveIndexEntry entryName entryData entryTime = logTiming maxBound (" updateArchiveIndexEntry " ++ show entryName) $ do
596596 updateState packagesState $
597597 AddOtherIndexEntry $ ExtraEntry entryName entryData entryTime
@@ -721,7 +721,7 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
721721 -- check that the cabal name matches the package
722722 guard (lookup " cabal" dpath == Just (display $ packageName pkginfo))
723723 let (fileRev, (utime, _uid)) = pkgLatestRevision pkginfo
724- cabalfile = Resource. CabalFile (cabalFileByteString fileRev) utime
724+ cabalfile = Resource. CabalFile (fromStrict $ cabalFileByteString fileRev) utime
725725 return $ toResponse cabalfile
726726
727727 serveCabalFileRevisionsList :: DynamicPath -> ServerPartE Response
@@ -731,7 +731,7 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
731731 let revisions = pkgMetadataRevisions pkginfo
732732 revisionToObj rev (cabalFileText, (utime, uid)) =
733733 let uname = userIdToName users uid
734- hash = sha256 (cabalFileByteString cabalFileText)
734+ hash = sha256 (fromStrict $ cabalFileByteString cabalFileText)
735735 in
736736 Object $ KeyMap. fromList
737737 [ (Key. fromString " number" , Number (fromIntegral rev))
@@ -750,7 +750,7 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..}
750750 case mrev >>= \ rev -> revisions Vec. !? rev of
751751 Just (fileRev, (utime, _uid)) -> return $ toResponse cabalfile
752752 where
753- cabalfile = Resource. CabalFile (cabalFileByteString fileRev) utime
753+ cabalfile = Resource. CabalFile (fromStrict $ cabalFileByteString fileRev) utime
754754 Nothing -> errNotFound " Package revision not found"
755755 [MText " Cannot parse revision, or revision out of range." ]
756756
0 commit comments