@@ -113,6 +113,7 @@ import qualified Control.Monad.Reader
113113import qualified Data.Attoparsec.Text
114114import qualified Data.Bits
115115import qualified Data.ByteString
116+ import qualified Data.ByteString.Lazy
116117import qualified Data.HashSet
117118import qualified Data.Map.Strict
118119import qualified Data.Maybe
@@ -133,6 +134,7 @@ import System.Nix.ContentAddress (ContentAddress)
133134import System.Nix.Derivation (Derivation (.. ), DerivationOutput (.. ))
134135import System.Nix.DerivedPath (DerivedPath , ParseOutputsError )
135136import System.Nix.Hash (HashAlgo (.. ))
137+ import System.Nix.JSON ()
136138import System.Nix.OutputName (OutputName )
137139import System.Nix.Realisation (DerivationOutputError , Realisation (.. ))
138140import System.Nix.Signature (Signature , NarSignature )
@@ -141,6 +143,7 @@ import System.Nix.StorePath (HasStoreDir(..), InvalidNameError, InvalidPathError
141143import System.Nix.StorePath.Metadata (Metadata (.. ), StorePathTrust (.. ))
142144import System.Nix.Store.Remote.Types
143145
146+ import qualified Data.Aeson
144147import qualified Data.Coerce
145148import qualified Data.Bifunctor
146149import qualified Data.Some
@@ -616,14 +619,11 @@ realisation
616619 => NixSerializer r SError Realisation
617620realisation = Serializer
618621 { getS = do
619- realisationOutPath <- getS storePath
620- realisationSignatures <- getS (set signature)
621- realisationDependencies <- getS (mapS derivationOutputTyped storePath)
622- pure Realisation {.. }
623- , putS = \ Realisation {.. } -> do
624- putS storePath realisationOutPath
625- putS (set signature) realisationSignatures
626- putS (mapS derivationOutputTyped storePath) realisationDependencies
622+ rb <- getS byteString
623+ case Data.Aeson. eitherDecode (Data.ByteString.Lazy. fromStrict rb) of
624+ Left e -> error e
625+ Right r -> pure r
626+ , putS = putS byteString . Data.ByteString.Lazy. toStrict . Data.Aeson. encode
627627 }
628628
629629-- * Signatures
@@ -816,7 +816,11 @@ buildResult = Serializer
816816
817817 buildResultBuiltOutputs <-
818818 if protoVersion_minor pv >= 28
819- then pure <$> getS (mapS outputName realisation)
819+ then
820+ pure
821+ . Data.Map.Strict. mapKeys
822+ System.Nix.Realisation. derivationOutputName
823+ <$> getS (mapS derivationOutputTyped realisation)
820824 else pure Nothing
821825 pure BuildResult {.. }
822826
@@ -831,6 +835,7 @@ buildResult = Serializer
831835 putS time $ Data.Maybe. fromMaybe t0 buildResultStartTime
832836 putS time $ Data.Maybe. fromMaybe t0 buildResultStopTime
833837 Control.Monad. when (protoVersion_minor pv >= 28 )
838+ -- TODO realisation.id
834839 $ putS (mapS outputName realisation)
835840 $ Data.Maybe. fromMaybe mempty buildResultBuiltOutputs
836841 }
0 commit comments