From 313ae0de374a1118bc8fe546509c94570728005c Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:40:59 +0100 Subject: [PATCH 1/6] remote: bump version to 0.3.0.0 --- hnix-store-remote/hnix-store-remote.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hnix-store-remote/hnix-store-remote.cabal b/hnix-store-remote/hnix-store-remote.cabal index cfc391bc..001d1905 100644 --- a/hnix-store-remote/hnix-store-remote.cabal +++ b/hnix-store-remote/hnix-store-remote.cabal @@ -1,5 +1,5 @@ name: hnix-store-remote -version: 0.2.0.0 +version: 0.3.0.0 synopsis: Remote hnix store description: Implementation of the nix store using the daemon protocol. homepage: https://github.com/haskell-nix/hnix-store From ccc8d9c1eeebe89d2c604768c889b05f3c07be88 Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:40:39 +0100 Subject: [PATCH 2/6] remote: mention removal of addToStoreNar in ChangeLog --- hnix-store-remote/ChangeLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hnix-store-remote/ChangeLog.md b/hnix-store-remote/ChangeLog.md index e1da8835..2e77ad3d 100644 --- a/hnix-store-remote/ChangeLog.md +++ b/hnix-store-remote/ChangeLog.md @@ -2,7 +2,7 @@ ## (unreleased) 0.3.0.0 -- 2020-XY-ZV -* Restored most store API functions +* Restored most store API functions except `addToStoreNar` * Added `buildDerivation` ## 0.2.0.0 -- skipped From df2937eb862075540ceb6b11e5c342dd053ffa86 Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:41:19 +0100 Subject: [PATCH 3/6] remote: drop build-tool-depends: nix:nix-daemon from cabal file --- hnix-store-remote/hnix-store-remote.cabal | 2 -- 1 file changed, 2 deletions(-) diff --git a/hnix-store-remote/hnix-store-remote.cabal b/hnix-store-remote/hnix-store-remote.cabal index 001d1905..4921a2a0 100644 --- a/hnix-store-remote/hnix-store-remote.cabal +++ b/hnix-store-remote/hnix-store-remote.cabal @@ -55,8 +55,6 @@ test-suite hnix-store-remote-tests if !flag(io-testsuite) buildable: False - build-tool-depends: nix:nix-daemon - ghc-options: -rtsopts -fprof-auto type: exitcode-stdio-1.0 main-is: Driver.hs From f9bff5907ea0dd8cea393856e9a2c33a765707d4 Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:43:00 +0100 Subject: [PATCH 4/6] remote: add lower bound for hnix-store-core --- hnix-store-remote/hnix-store-remote.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hnix-store-remote/hnix-store-remote.cabal b/hnix-store-remote/hnix-store-remote.cabal index 4921a2a0..8c12a715 100644 --- a/hnix-store-remote/hnix-store-remote.cabal +++ b/hnix-store-remote/hnix-store-remote.cabal @@ -65,7 +65,7 @@ test-suite hnix-store-remote-tests hs-source-dirs: tests build-depends: attoparsec - , hnix-store-core + , hnix-store-core >= 0.3 , hnix-store-remote , base , base64-bytestring From 914f16fcb1b0d81eb80d04a262fcc931de89bd4e Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:55:56 +0100 Subject: [PATCH 5/6] remote: fix contentAddressableAddressBuilder to work with SomeDigest --- .../src/System/Nix/Store/Remote/Builders.hs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hnix-store-remote/src/System/Nix/Store/Remote/Builders.hs b/hnix-store-remote/src/System/Nix/Store/Remote/Builders.hs index 1a5ff4b1..61d4826c 100644 --- a/hnix-store-remote/src/System/Nix/Store/Remote/Builders.hs +++ b/hnix-store-remote/src/System/Nix/Store/Remote/Builders.hs @@ -9,8 +9,8 @@ module System.Nix.Store.Remote.Builders ( ) where import Data.Text.Lazy (Text) -import System.Nix.Hash (Digest, NamedAlgo, SomeNamedDigest(SomeDigest)) -import System.Nix.StorePath (ContentAddressableAddress(..), NarHashMode(..)) +import System.Nix.Hash (Digest, SomeNamedDigest(SomeDigest)) +import System.Nix.StorePath (ContentAddressableAddress(..)) import Data.Text.Lazy.Builder (Builder) import qualified Data.Text.Lazy.Builder @@ -19,19 +19,19 @@ import qualified System.Nix.Hash -- | Marshall `ContentAddressableAddress` to `Text` -- in form suitable for remote protocol usage. -buildContentAddressableAddress :: forall hashAlgo . NamedAlgo hashAlgo - => ContentAddressableAddress - -> Text +buildContentAddressableAddress + :: ContentAddressableAddress + -> Text buildContentAddressableAddress = - Data.Text.Lazy.Builder.toLazyText . contentAddressableAddressBuilder @hashAlgo + Data.Text.Lazy.Builder.toLazyText . contentAddressableAddressBuilder -contentAddressableAddressBuilder :: forall hashAlgo . NamedAlgo hashAlgo - => ContentAddressableAddress - -> Builder +contentAddressableAddressBuilder + :: ContentAddressableAddress + -> Builder contentAddressableAddressBuilder (Text digest) = "text:" <> digestBuilder digest -contentAddressableAddressBuilder (Fixed narHashMode (SomeDigest digest)) = +contentAddressableAddressBuilder (Fixed _narHashMode (SomeDigest (digest :: Digest hashAlgo))) = "fixed:" <> (Data.Text.Lazy.Builder.fromText $ System.Nix.Hash.algoName @hashAlgo) <> digestBuilder digest From 69f9af2c007508397cf0f11aef30746777b23e5c Mon Sep 17 00:00:00 2001 From: Richard Marko Date: Mon, 16 Nov 2020 11:49:48 +0100 Subject: [PATCH 6/6] core: update ChangeLog (base64, SHA512, NAR streaming) --- hnix-store-core/ChangeLog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hnix-store-core/ChangeLog.md b/hnix-store-core/ChangeLog.md index f379c921..bf4cf710 100644 --- a/hnix-store-core/ChangeLog.md +++ b/hnix-store-core/ChangeLog.md @@ -2,6 +2,9 @@ ## (unreleased) 0.3.0.0 -- 2020-XY-ZV +* `System.Nix.Nar` changes API to support NAR format streaming: + * `buildNarIO :: FilePath -> Handle -> IO ()` - Create a NAR from a regular filesystem object, stream it out on the Handle + * `unpackNarIO :: Handle -> FilePath -> IO ()` - Recreate filesystem object from a NAR file accessed by the Handle * `StorePath` type changed to simple variant without type level symbolic store path root. * Added `makeFixedOutputPath` to `System.Nix.ReadonlyStore` @@ -14,6 +17,7 @@ symbolic store path root. * Added `System.Nix.Build` module * Added `System.Nix.Derivation` module * Removed `System.Nix.Util` module, moved to `hnix-store-remote` +* Added base64 and SHA512 hash support ## 0.2.0.0 -- 2020-03-12