From f6af67383e13a038bcadff8eb237db3b54ecc8c4 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Mon, 8 Jul 2019 17:46:21 +1000 Subject: [PATCH 01/30] Update to stack lts-12.26 --- stack.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stack.yaml b/stack.yaml index e595a5d807e..5202c87f0f4 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,4 @@ -resolver: lts-12.17 +resolver: lts-12.26 flags: ether: @@ -133,7 +133,7 @@ packages: git: https://github.com/well-typed/canonical-json.git commit: ddfe3593b80b5ceb88842bb7a6f2268df75d2c2f extra-dep: true - + # The latest release of clock on hackage is *way* too old (0.7.2) # and can not be cross compiled. As From 695b437471fda621c5652f9bbe1d22ca334f5296 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Mon, 8 Jul 2019 18:51:19 +1000 Subject: [PATCH 02/30] stack.yaml: Update cardano-crypto --- stack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stack.yaml b/stack.yaml index 5202c87f0f4..98c3a8cdc39 100644 --- a/stack.yaml +++ b/stack.yaml @@ -53,7 +53,7 @@ packages: - location: git: https://github.com/input-output-hk/cardano-crypto - commit: 45e1a0eafac774c109704be44ca06fd8cae193ba + commit: 4590efa638397e952a51a8994b5543e4ea3c1ecd extra-dep: true # to be removed when haskell-ip is in the current stackage version - location: From 5284356c238c9242068a7926247865d5df458242 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Tue, 9 Jul 2019 07:34:14 +1000 Subject: [PATCH 03/30] Replace all uses of Parsec with Megaparsec Satisfying the constraints of both packages *and* those of the cardano-byron-proxy was simply too difficult. --- auxx/src/Lang/Lexer.hs | 19 ++++++++++--------- chain/cardano-sl-chain.cabal | 2 +- chain/src/Pos/Chain/Security/Params.hs | 4 ++-- cluster/cardano-sl-cluster.cabal | 2 +- cluster/src/Cardano/Cluster/Util.hs | 4 ++-- core/cardano-sl-core.cabal | 2 +- core/src/Pos/Core/NetworkAddress.hs | 9 +++++---- infra/cardano-sl-infra.cabal | 2 +- infra/src/Pos/Infra/DHT/Model/Types.hs | 10 +++++----- infra/src/Pos/Infra/DHT/Real/CLI.hs | 4 ++-- lib/cardano-sl.cabal | 2 +- lib/src/Pos/Client/CLI/Util.hs | 20 ++++++++++---------- stack.yaml | 11 +++++++---- util/cardano-sl-util.cabal | 1 - util/src/Pos/Util/OptParse.hs | 6 +++--- 15 files changed, 51 insertions(+), 47 deletions(-) diff --git a/auxx/src/Lang/Lexer.hs b/auxx/src/Lang/Lexer.hs index 55445044dfa..1a8ad8af0b4 100644 --- a/auxx/src/Lang/Lexer.hs +++ b/auxx/src/Lang/Lexer.hs @@ -45,10 +45,11 @@ import Test.QuickCheck.Arbitrary.Generic (Arbitrary (..), genericArbitrary, genericShrink) import qualified Test.QuickCheck.Gen as QC import Test.QuickCheck.Instances () -import Text.Megaparsec (Parsec, SourcePos (..), between, choice, eof, - getPosition, manyTill, notFollowedBy, parseMaybe, - skipMany, takeP, takeWhile1P, try, unPos, ()) -import Text.Megaparsec.Char (anyChar, char, satisfy, spaceChar, +import Text.Megaparsec (Parsec, SourcePos (..), anySingle, between, + choice, eof, getSourcePos, manyTill, notFollowedBy, + parseMaybe, satisfy, skipMany, takeP, takeWhile1P, try, + unPos, ()) +import Text.Megaparsec.Char (char, spaceChar, string) import Text.Megaparsec.Char.Lexer (decimal, scientific, signed) @@ -177,13 +178,13 @@ pToken = withPosition (try pToken' <|> pUnknown) <* pSkip ( fromIntegral . unPos $ sourceLine , fromIntegral . unPos $ sourceColumn) withPosition p = do - pos1 <- posToLoc <$> getPosition + pos1 <- posToLoc <$> getSourcePos t <- p - pos2 <- posToLoc <$> getPosition + pos2 <- posToLoc <$> getSourcePos return (spanFromTo pos1 pos2, t) pUnknown :: Lexer Token -pUnknown = TokenUnknown . UnknownChar <$> anyChar +pUnknown = TokenUnknown . UnknownChar <$> anySingle pSkip :: Lexer () pSkip = skipMany (void spaceChar) @@ -223,7 +224,7 @@ pText = do where loop :: [Char] -> Lexer [Char] loop !acc = do - next <- anyChar + next <- anySingle case next of -- Check for double double quotes. If it's a single double quote, -- it's the end of the string. @@ -287,7 +288,7 @@ pFilePath = FilePath' <$> do where pFilePathChar :: Lexer Char pFilePathChar = - char '\\' *> anyChar <|> + char '\\' *> anySingle <|> satisfy isFilePathChar pIdent :: Lexer Token diff --git a/chain/cardano-sl-chain.cabal b/chain/cardano-sl-chain.cabal index 07cf919d9a3..5c16e1d0ba7 100644 --- a/chain/cardano-sl-chain.cabal +++ b/chain/cardano-sl-chain.cabal @@ -191,7 +191,7 @@ library , mono-traversable , mtl , neat-interpolation - , parsec + , megaparsec , QuickCheck , reflection , safecopy diff --git a/chain/src/Pos/Chain/Security/Params.hs b/chain/src/Pos/Chain/Security/Params.hs index b26a5c95bb2..f6a6dc763ca 100644 --- a/chain/src/Pos/Chain/Security/Params.hs +++ b/chain/src/Pos/Chain/Security/Params.hs @@ -13,7 +13,7 @@ import Data.Aeson.Options (defaultOptions) import qualified Data.Aeson.Types as A import Data.Default (Default (..)) import qualified Data.Text as T -import qualified Text.Parsec as Parsec +import qualified Text.Megaparsec as Parsec import Pos.Core.Common (StakeholderId) import Pos.Core.NetworkAddress (NetworkAddress, addrParser) @@ -99,4 +99,4 @@ instance Exception NodeAttackedError parseNetworkAddress :: A.Value -> A.Parser NetworkAddress parseNetworkAddress = A.withText "NetworkAddress" $ \s -> - toAesonError . over _Left show $ Parsec.parse addrParser "" s + toAesonError . over _Left show $ Parsec.parse addrParser "" (toString s) diff --git a/cluster/cardano-sl-cluster.cabal b/cluster/cardano-sl-cluster.cabal index 34f62836ea8..9631248102f 100644 --- a/cluster/cardano-sl-cluster.cabal +++ b/cluster/cardano-sl-cluster.cabal @@ -47,7 +47,7 @@ library , iproute , lens , optparse-applicative - , parsec + , megaparsec , safe , servant-client , temporary diff --git a/cluster/src/Cardano/Cluster/Util.hs b/cluster/src/Cardano/Cluster/Util.hs index 1cadc2fbaf3..9a8257004db 100644 --- a/cluster/src/Cardano/Cluster/Util.hs +++ b/cluster/src/Cardano/Cluster/Util.hs @@ -65,7 +65,7 @@ import qualified Options.Applicative as Parser import Options.Applicative.Help.Chunk (Chunk (..)) import qualified Safe import Servant.Client (BaseUrl (..), Scheme (..)) -import qualified Text.Parsec as Parsec +import qualified Text.Megaparsec as Parsec import Pos.Core.NetworkAddress (NetworkAddress, addrParser) import Pos.Infra.Network.DnsDomains (NodeAddr (..)) @@ -238,7 +238,7 @@ unsafeIntFromString str = unsafeNetworkAddressFromString :: String -> NetworkAddress unsafeNetworkAddressFromString str = - case Parsec.parse addrParser "" (toText str) of + case Parsec.parse addrParser "" str of Left err -> error $ "Tried to convert a 'String' to a 'NetworkAddress' but failed: " <> toText str <> ", " <> show err diff --git a/core/cardano-sl-core.cabal b/core/cardano-sl-core.cabal index 858cababaf6..2b119a9ecc9 100644 --- a/core/cardano-sl-core.cabal +++ b/core/cardano-sl-core.cabal @@ -134,7 +134,7 @@ library , hashable , http-api-data , lens - , parsec + , megaparsec , memory , mmorph , monad-control diff --git a/core/src/Pos/Core/NetworkAddress.hs b/core/src/Pos/Core/NetworkAddress.hs index aeaa57e8772..bad5934a587 100644 --- a/core/src/Pos/Core/NetworkAddress.hs +++ b/core/src/Pos/Core/NetworkAddress.hs @@ -12,8 +12,9 @@ import qualified Serokell.Util.Parse as P -- We should really be using Megaparsec here instead of Parsec, but that -- requires 'Serokell.Util.Parse' to be modified to use Parsec and then -- have that dependency bubble up. -import qualified Text.Parsec as P -import qualified Text.Parsec.Text as P +import Text.Megaparsec (ParsecT) +import qualified Text.Megaparsec as P +import qualified Text.Megaparsec.Char as P -- | @"127.0.0.1"@. @@ -24,11 +25,11 @@ localhost = "127.0.0.1" type NetworkAddress = (ByteString, Word16) -- | Parsed for network address in format @host:port@. -addrParser :: P.Parser NetworkAddress +addrParser :: ParsecT () String m NetworkAddress addrParser = (,) <$> (encodeUtf8 <$> P.host) <*> (P.char ':' *> P.port) <* P.eof -- | Parses an IPv4 NetworkAddress where the host is not 0.0.0.0. -addrParserNoWildcard :: P.Parser NetworkAddress +addrParserNoWildcard :: ParsecT () String m NetworkAddress addrParserNoWildcard = do (host, port) <- addrParser if host == BS8.pack "0.0.0.0" then empty diff --git a/infra/cardano-sl-infra.cabal b/infra/cardano-sl-infra.cabal index af38305ea30..e13e3492230 100644 --- a/infra/cardano-sl-infra.cabal +++ b/infra/cardano-sl-infra.cabal @@ -119,7 +119,6 @@ library build-depends: aeson , async , base - , parsec , base64-bytestring , bytestring , cardano-sl-binary @@ -148,6 +147,7 @@ library , iproute , kademlia , lens + , megaparsec , mtl , network-info , network-transport diff --git a/infra/src/Pos/Infra/DHT/Model/Types.hs b/infra/src/Pos/Infra/DHT/Model/Types.hs index 58d500d602d..cc17b0f1a49 100644 --- a/infra/src/Pos/Infra/DHT/Model/Types.hs +++ b/infra/src/Pos/Infra/DHT/Model/Types.hs @@ -31,8 +31,8 @@ import qualified Prelude import qualified Serokell.Util.Base64 as B64 import qualified Serokell.Util.Parse as P import Serokell.Util.Text (listBuilderJSON) -import qualified Text.Parsec as P -import qualified Text.Parsec.Text as P +import Text.Megaparsec (ParsecT) +import qualified Text.Megaparsec.Char as P import Pos.Binary.Class (Bi (..)) import Pos.Core.NetworkAddress (NetworkAddress, addrParser) @@ -110,11 +110,11 @@ randomDHTKey = DHTKey . hashAddress <$> liftIO (runSecureRandom genNonce) ---------------------------------------------------------------------------- -- | Parser for DHT key. -dhtKeyParser :: P.Parser DHTKey +dhtKeyParser :: ParsecT () String m DHTKey dhtKeyParser = P.base64Url >>= toDHTKey where - toDHTKey = either P.parserFail return . bytesToDHTKey + toDHTKey = either fail return . bytesToDHTKey -- | Parser for 'DHTNode'. -dhtNodeParser :: P.Parser DHTNode +dhtNodeParser :: ParsecT () String m DHTNode dhtNodeParser = DHTNode <$> addrParser <*> (P.char '/' *> dhtKeyParser) diff --git a/infra/src/Pos/Infra/DHT/Real/CLI.hs b/infra/src/Pos/Infra/DHT/Real/CLI.hs index 9c599d65d11..001bca01c8e 100644 --- a/infra/src/Pos/Infra/DHT/Real/CLI.hs +++ b/infra/src/Pos/Infra/DHT/Real/CLI.hs @@ -13,7 +13,7 @@ import Control.Exception.Safe (throwString) import Formatting (build, formatToString, shown, (%)) import qualified Options.Applicative as Opt import Pos.Util.OptParse (fromParsec) -import Text.Parsec (eof, parse) +import Text.Megaparsec (eof, parse) import Pos.Core.NetworkAddress (NetworkAddress, addrParser) import Pos.Infra.DHT.Model.Types (DHTKey, DHTNode, dhtKeyParser, @@ -66,4 +66,4 @@ readDhtPeersFile path = do ("error when parsing peer "%shown% " from peers file "%build%": "%shown) x path err Right a -> return a - mapM parseLine xs + mapM (parseLine . toString) xs diff --git a/lib/cardano-sl.cabal b/lib/cardano-sl.cabal index 3c124566f43..b17fcffe1d4 100644 --- a/lib/cardano-sl.cabal +++ b/lib/cardano-sl.cabal @@ -193,7 +193,7 @@ library , network , network-transport , optparse-applicative - , parsec + , megaparsec , pvss , QuickCheck , quickcheck-instances diff --git a/lib/src/Pos/Client/CLI/Util.hs b/lib/src/Pos/Client/CLI/Util.hs index 4146268a541..ba3cb9cbcf4 100644 --- a/lib/src/Pos/Client/CLI/Util.hs +++ b/lib/src/Pos/Client/CLI/Util.hs @@ -10,11 +10,11 @@ module Pos.Client.CLI.Util , stakeholderIdParser ) where -import Universum hiding (try) +import Universum -import Text.Parsec (parserFail, try) -import qualified Text.Parsec.Char as P -import qualified Text.Parsec.Text as P +import Text.Megaparsec (Parsec) +import qualified Text.Megaparsec as P +import qualified Text.Megaparsec.Char as P import Pos.Chain.Security (AttackTarget (..), AttackType (..)) import Pos.Core (StakeholderId) @@ -23,20 +23,20 @@ import Pos.Crypto (decodeAbstractHash) import Pos.Util.Wlog (LoggerConfig (..), parseLoggerConfig, productionB) -attackTypeParser :: P.Parser AttackType +attackTypeParser :: Parsec () String AttackType attackTypeParser = P.string "No" >> AttackNoBlocks <$ (P.string "Blocks") <|> AttackNoCommitments <$ (P.string "Commitments") -stakeholderIdParser :: P.Parser StakeholderId +stakeholderIdParser :: Parsec () String StakeholderId stakeholderIdParser = do - token <- some P.alphaNum - either (parserFail . toString) return $ + token <- some P.alphaNumChar + either (fail . toString) return $ decodeAbstractHash (toText token) -attackTargetParser :: P.Parser AttackTarget +attackTargetParser :: Parsec () String AttackTarget attackTargetParser = - (PubKeyAddressTarget <$> try stakeholderIdParser) <|> + (PubKeyAddressTarget <$> P.try stakeholderIdParser) <|> (NetworkAddressTarget <$> addrParser) -- | Default logger config. Will be used if `--log-config` argument is diff --git a/stack.yaml b/stack.yaml index 98c3a8cdc39..3f4a743eed8 100644 --- a/stack.yaml +++ b/stack.yaml @@ -175,16 +175,16 @@ packages: # Custom Universum prelude, that brings back some of the # formatting logic, as well as `pretty`. - location: - git: https://github.com/input-output-hk/universum.git - commit: 7f1b2483f71cacdfd032fe447064d6e0a1df50fc + git: https://github.com/input-output-hk/universum + commit: 15f7db758ff5a24b874de2247f6f7a4576562da5 extra-dep: true # Need to adjust version bounds on serokell-util. # serokell-util has an upper bound preventing 6.3 for some reason - location: - git: https://github.com/input-output-hk/serokell-util.git - commit: 4ead9809e119483e7832da5f8224b0c4d4a2d5d6 + git: https://github.com/input-output-hk/serokell-util + commit: e592ae9b9387184519b393c066edbf8b4ed91737 extra-dep: true # Inspector, as used in cardano-crypto @@ -230,6 +230,9 @@ extra-deps: - micro-recursion-schemes-5.0.2.2 - token-bucket-0.1.0.1 - lzma-clib-5.2.2 +- megaparsec-7.0.4 +- neat-interpolation-0.3.2.4 +- config-ini-0.2.4.0 # katip-0.6.3.0 conflicts with Win32-2.6.1.0 allow-newer: true diff --git a/util/cardano-sl-util.cabal b/util/cardano-sl-util.cabal index 5a1b3c6ec83..cb13fbd6b44 100644 --- a/util/cardano-sl-util.cabal +++ b/util/cardano-sl-util.cabal @@ -87,7 +87,6 @@ library , monad-control , mtl , optparse-applicative - , parsec , process , reflection , resourcet diff --git a/util/src/Pos/Util/OptParse.hs b/util/src/Pos/Util/OptParse.hs index 3ad9ad305f0..bd23914bc9b 100644 --- a/util/src/Pos/Util/OptParse.hs +++ b/util/src/Pos/Util/OptParse.hs @@ -5,8 +5,8 @@ module Pos.Util.OptParse import Universum import Options.Applicative (ReadM, eitherReader) -import Text.Parsec (Parsec, parse) +import Text.Megaparsec (Parsec, parse) -fromParsec :: Parsec Text () a -> ReadM a +fromParsec :: Parsec () String a -> ReadM a fromParsec parser = - eitherReader $ first show . parse parser "" . toText + eitherReader $ first show . parse parser "" From fbda038089819bb5445fe46f5f34e6163d522e25 Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Tue, 9 Jul 2019 09:31:03 +1000 Subject: [PATCH 04/30] Stack/Nix wrangling --- .stack-to-nix.cache | 3 + cabal.project.freeze | 30 +- nix/.stack-pkgs.nix | 7 +- nix/.stack.nix/cardano-crypto.nix | 4 +- nix/.stack.nix/cardano-sl-chain.nix | 2 +- nix/.stack.nix/cardano-sl-cluster.nix | 2 +- nix/.stack.nix/cardano-sl-core.nix | 2 +- nix/.stack.nix/cardano-sl-infra.nix | 2 +- nix/.stack.nix/cardano-sl-util.nix | 1 - nix/.stack.nix/cardano-sl.nix | 2 +- nix/.stack.nix/serokell-util.nix | 12 +- nix/.stack.nix/universum.nix | 14 +- nix/pkgs.nix | 2 +- pkgs/default.nix | 2015 ++++++++++++++++++------- pkgs/regen.nix | 2 +- stack.yaml | 8 +- wallet/cardano-sl.yaml | 6 +- 17 files changed, 1495 insertions(+), 619 deletions(-) diff --git a/.stack-to-nix.cache b/.stack-to-nix.cache index bb5a710b093..e4c7ed5b733 100644 --- a/.stack-to-nix.cache +++ b/.stack-to-nix.cache @@ -31,3 +31,6 @@ https://github.com/input-output-hk/haskell-hedgehog.git e63fb354bfbad07f3befdd43 https://github.com/hedgehogqa/haskell-hedgehog.git a20005f4d584f19ea05524320f1c9a90a44c81db hedgehog 1lca47ilzg75ibv2qbb1pl466rba6ir8ra0cg4qlji63dsbpkiks hedgehog .stack.nix/hedgehog.nix https://github.com/jaspervdj/stylish-haskell f253f37362be840bafe2c82a8d7fb284046fda48 . 070lwddjvawaf42p8mvxl6fam44nhn98nc85gsk5688fygccv5qw stylish-haskell .stack.nix/stylish-haskell.nix https://github.com/well-typed/canonical-json.git ddfe3593b80b5ceb88842bb7a6f2268df75d2c2f . 02fzn1xskis1lc1pkz0j92v6ipd89ww0k2p3dvwpm3yap5dpnm7k canonical-json .stack.nix/canonical-json.nix +https://github.com/input-output-hk/cardano-crypto 4590efa638397e952a51a8994b5543e4ea3c1ecd . 0hl2n3bba5v2j0lmxhs7hs01z3aznh2bwf9cb434icq2g0bl8ms3 cardano-crypto .stack.nix/cardano-crypto.nix +https://github.com/input-output-hk/universum 15f7db758ff5a24b874de2247f6f7a4576562da5 . 127bs29zpjcc40777dv7figk05gd00b9ja57sp11w440qr5h72hk universum .stack.nix/universum.nix +https://github.com/input-output-hk/serokell-util e592ae9b9387184519b393c066edbf8b4ed91737 . 11nhmikaqmhfs4cyhs3rq07bi4hmqyfg9vl7q8779h07i629zsz3 serokell-util .stack.nix/serokell-util.nix diff --git a/cabal.project.freeze b/cabal.project.freeze index d9c39660b77..f378ea74f45 100644 --- a/cabal.project.freeze +++ b/cabal.project.freeze @@ -21,7 +21,7 @@ constraints: Cabal ==2.2.0.1, auto-update ==0.1.4, base16-bytestring ==0.1.1.6, base58-bytestring ==0.1.0, - base64-bytestring ==1.0.0.1, + base64-bytestring ==1.0.0.2, basement ==0.0.8, beam-core ==0.7.2.2, beam-migrate ==0.3.2.1, @@ -48,14 +48,14 @@ constraints: Cabal ==2.2.0.1, dns ==3.0.4, docopt ==0.7.0.5, ekg ==0.4.0.15, - ekg-core ==0.1.1.4, + ekg-core ==0.1.1.6, ekg-statsd ==0.2.4.0, ekg-wai ==0.1.0.3, engine-io ==1.2.21, engine-io-wai ==1.0.9, ether ==0.5.1.0, exceptions ==0.10.0, - extra ==1.6.13, + extra ==1.6.14, fgl ==5.6.0.0, file-embed ==0.0.10.1, filelock ==0.1.1.2, @@ -76,14 +76,14 @@ constraints: Cabal ==2.2.0.1, hspec-core ==2.5.5, hspec-expectations-lifted ==0.10.0, http-api-data ==0.3.8.1, - http-client ==0.5.13.1, + http-client ==0.5.14, http-client-tls ==0.3.5.3, http-conduit ==2.3.2, http-media ==0.7.1.3, http-types ==0.12.2, insert-ordered-containers ==0.2.1.0, ip ==1.3.0, - iproute ==1.7.6, + iproute ==1.7.7, ixset-typed ==0.4.0.1, kademlia ==1.1.0.1, katip ==0.6.3.0, @@ -93,15 +93,15 @@ constraints: Cabal ==2.2.0.1, lifted-base ==0.2.3.12, loc ==0.1.3.3, log-warper ==1.8.10.1, - lrucache ==1.2.0.0, + lrucache ==1.2.0.1, lzma-conduit ==1.2.1, - megaparsec ==6.5.0, + megaparsec ==7.0.4, memory ==0.14.18, mmorph ==1.1.2, monad-control ==1.0.2.3, - mono-traversable ==1.0.9.0, + mono-traversable ==1.0.10.0, mwc-random ==0.13.6.0, - neat-interpolation ==0.3.2.2, + neat-interpolation ==0.3.2.4, network ==2.6.3.6, network-info ==0.2.0.10, network-transport ==0.5.2, @@ -109,7 +109,7 @@ constraints: Cabal ==2.2.0.1, network-transport-tcp ==0.6.0, normaldistribution ==1.1.0.3, optparse-applicative ==0.14.3.0, - optparse-simple ==0.1.0, + optparse-simple ==0.1.1, parser-combinators ==1.0.0, parsers ==0.12.9, pipes ==4.3.9, @@ -128,7 +128,7 @@ constraints: Cabal ==2.2.0.1, rocksdb-haskell-ng ==0.0.0, safe ==0.3.17, safe-exceptions ==0.1.7.0, - safecopy ==0.9.4.1, + safecopy ==0.9.4.3, scientific ==0.3.6.2, scrypt ==0.5.0, serokell-util ==0.9.0, @@ -164,15 +164,15 @@ constraints: Cabal ==2.2.0.1, transformers-base ==0.4.5.2, transformers-lift ==0.2.0.1, trifecta ==2, - turtle ==1.5.12, + turtle ==1.5.13, universum ==1.2.0, unix-compat ==0.5.1, - unliftio ==0.2.8.1, + unliftio ==0.2.9.0, unliftio-core ==0.1.2.0, unordered-containers ==0.2.9.0, uuid ==1.3.13, validation ==1, - vector ==0.12.0.1, + vector ==0.12.0.2, vty ==5.21, wai ==3.2.1.2, wai-app-static ==3.1.6.2, @@ -181,7 +181,7 @@ constraints: Cabal ==2.2.0.1, wai-middleware-throttle ==0.3.0.0, warp ==3.2.25, warp-tls ==3.2.4.3, - wreq ==0.5.2.1, + wreq ==0.5.3.1, x509 ==1.7.5, x509-store ==1.6.7, x509-validation ==1.6.11, diff --git a/nix/.stack-pkgs.nix b/nix/.stack-pkgs.nix index 25e20a33d3b..ee46f3c0eda 100644 --- a/nix/.stack-pkgs.nix +++ b/nix/.stack-pkgs.nix @@ -26,6 +26,10 @@ "micro-recursion-schemes" = hackage.micro-recursion-schemes."5.0.2.2".revisions.default; "token-bucket" = hackage.token-bucket."0.1.0.1".revisions.default; "lzma-clib" = hackage.lzma-clib."5.2.2".revisions.default; + "megaparsec" = hackage.megaparsec."7.0.4".revisions.default; + "neat-interpolation" = hackage.neat-interpolation."0.3.2.4".revisions.default; + "config-ini" = hackage.config-ini."0.2.4.0".revisions.default; + "stylish-haskell" = hackage.stylish-haskell."0.9.2.2".revisions.default; } // { cardano-sl-util = ./.stack.nix/cardano-sl-util.nix; cardano-sl-util-test = ./.stack.nix/cardano-sl-util-test.nix; @@ -76,11 +80,10 @@ rocksdb-haskell-ng = ./.stack.nix/rocksdb-haskell-ng.nix; log-warper = ./.stack.nix/log-warper.nix; hedgehog = ./.stack.nix/hedgehog.nix; - stylish-haskell = ./.stack.nix/stylish-haskell.nix; universum = ./.stack.nix/universum.nix; serokell-util = ./.stack.nix/serokell-util.nix; inspector = ./.stack.nix/inspector.nix; }; }; - resolver = "lts-12.17"; + resolver = "lts-12.26"; } diff --git a/nix/.stack.nix/cardano-crypto.nix b/nix/.stack.nix/cardano-crypto.nix index ed7625b081f..6231bd482bc 100644 --- a/nix/.stack.nix/cardano-crypto.nix +++ b/nix/.stack.nix/cardano-crypto.nix @@ -94,7 +94,7 @@ } // { src = pkgs.fetchgit { url = "https://github.com/input-output-hk/cardano-crypto"; - rev = "45e1a0eafac774c109704be44ca06fd8cae193ba"; - sha256 = "1jyzai4sn9hi3p6r97h54f9a7an7vk38lwrbl4mds9zmdsw5f5ad"; + rev = "4590efa638397e952a51a8994b5543e4ea3c1ecd"; + sha256 = "0hl2n3bba5v2j0lmxhs7hs01z3aznh2bwf9cb434icq2g0bl8ms3"; }; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-chain.nix b/nix/.stack.nix/cardano-sl-chain.nix index b9a4e2b56f7..fe93d3a95b5 100644 --- a/nix/.stack.nix/cardano-sl-chain.nix +++ b/nix/.stack.nix/cardano-sl-chain.nix @@ -64,7 +64,7 @@ (hsPkgs.mono-traversable) (hsPkgs.mtl) (hsPkgs.neat-interpolation) - (hsPkgs.parsec) + (hsPkgs.megaparsec) (hsPkgs.QuickCheck) (hsPkgs.reflection) (hsPkgs.safecopy) diff --git a/nix/.stack.nix/cardano-sl-cluster.nix b/nix/.stack.nix/cardano-sl-cluster.nix index 5817e2f9d76..006a47771f3 100644 --- a/nix/.stack.nix/cardano-sl-cluster.nix +++ b/nix/.stack.nix/cardano-sl-cluster.nix @@ -46,7 +46,7 @@ (hsPkgs.iproute) (hsPkgs.lens) (hsPkgs.optparse-applicative) - (hsPkgs.parsec) + (hsPkgs.megaparsec) (hsPkgs.safe) (hsPkgs.servant-client) (hsPkgs.temporary) diff --git a/nix/.stack.nix/cardano-sl-core.nix b/nix/.stack.nix/cardano-sl-core.nix index d04df95edf8..45de121f85e 100644 --- a/nix/.stack.nix/cardano-sl-core.nix +++ b/nix/.stack.nix/cardano-sl-core.nix @@ -51,7 +51,7 @@ (hsPkgs.hashable) (hsPkgs.http-api-data) (hsPkgs.lens) - (hsPkgs.parsec) + (hsPkgs.megaparsec) (hsPkgs.memory) (hsPkgs.mmorph) (hsPkgs.monad-control) diff --git a/nix/.stack.nix/cardano-sl-infra.nix b/nix/.stack.nix/cardano-sl-infra.nix index 50004c123c4..bc62455d0c8 100644 --- a/nix/.stack.nix/cardano-sl-infra.nix +++ b/nix/.stack.nix/cardano-sl-infra.nix @@ -29,7 +29,6 @@ (hsPkgs.aeson) (hsPkgs.async) (hsPkgs.base) - (hsPkgs.parsec) (hsPkgs.base64-bytestring) (hsPkgs.bytestring) (hsPkgs.cardano-sl-binary) @@ -58,6 +57,7 @@ (hsPkgs.iproute) (hsPkgs.kademlia) (hsPkgs.lens) + (hsPkgs.megaparsec) (hsPkgs.mtl) (hsPkgs.network-info) (hsPkgs.network-transport) diff --git a/nix/.stack.nix/cardano-sl-util.nix b/nix/.stack.nix/cardano-sl-util.nix index c79badb6f2d..908183f2683 100644 --- a/nix/.stack.nix/cardano-sl-util.nix +++ b/nix/.stack.nix/cardano-sl-util.nix @@ -52,7 +52,6 @@ (hsPkgs.monad-control) (hsPkgs.mtl) (hsPkgs.optparse-applicative) - (hsPkgs.parsec) (hsPkgs.process) (hsPkgs.reflection) (hsPkgs.resourcet) diff --git a/nix/.stack.nix/cardano-sl.nix b/nix/.stack.nix/cardano-sl.nix index 37e51820a41..d86d8c7f407 100644 --- a/nix/.stack.nix/cardano-sl.nix +++ b/nix/.stack.nix/cardano-sl.nix @@ -78,7 +78,7 @@ (hsPkgs.network) (hsPkgs.network-transport) (hsPkgs.optparse-applicative) - (hsPkgs.parsec) + (hsPkgs.megaparsec) (hsPkgs.pvss) (hsPkgs.QuickCheck) (hsPkgs.quickcheck-instances) diff --git a/nix/.stack.nix/serokell-util.nix b/nix/.stack.nix/serokell-util.nix index e2981a3c533..749f2e6798c 100644 --- a/nix/.stack.nix/serokell-util.nix +++ b/nix/.stack.nix/serokell-util.nix @@ -25,7 +25,7 @@ }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.aeson) (hsPkgs.ansi-terminal) @@ -42,7 +42,7 @@ (hsPkgs.microlens-mtl) (hsPkgs.mtl) (hsPkgs.o-clock) - (hsPkgs.parsec) + (hsPkgs.megaparsec) (hsPkgs.process) (hsPkgs.QuickCheck) (hsPkgs.quickcheck-instances) @@ -58,7 +58,7 @@ }; tests = { "serokell-test" = { - depends = [ + depends = [ (hsPkgs.aeson) (hsPkgs.base) (hsPkgs.extra) @@ -79,8 +79,8 @@ }; } // { src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/serokell-util.git"; - rev = "4ead9809e119483e7832da5f8224b0c4d4a2d5d6"; - sha256 = "0h4wcvp126w021bc2kglsbfywyvc9z3yf1sh1k4yy1an4ckh51jd"; + url = "https://github.com/input-output-hk/serokell-util"; + rev = "e592ae9b9387184519b393c066edbf8b4ed91737"; + sha256 = "11nhmikaqmhfs4cyhs3rq07bi4hmqyfg9vl7q8779h07i629zsz3"; }; } \ No newline at end of file diff --git a/nix/.stack.nix/universum.nix b/nix/.stack.nix/universum.nix index 449f4ecf7b0..38ae3830f30 100644 --- a/nix/.stack.nix/universum.nix +++ b/nix/.stack.nix/universum.nix @@ -25,7 +25,7 @@ }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.bytestring) (hsPkgs.containers) @@ -49,7 +49,7 @@ }; tests = { "universum-test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.universum) (hsPkgs.bytestring) @@ -61,7 +61,7 @@ ]; }; "universum-doctest" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.doctest) (hsPkgs.Glob) @@ -70,7 +70,7 @@ }; benchmarks = { "universum-benchmark" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.universum) (hsPkgs.containers) @@ -82,8 +82,8 @@ }; } // { src = pkgs.fetchgit { - url = "https://github.com/input-output-hk/universum.git"; - rev = "7f1b2483f71cacdfd032fe447064d6e0a1df50fc"; - sha256 = "12ppiszywj0dsspwlhb8bzhsrlgszk8rvlhcy8il3ppz99mlnw5g"; + url = "https://github.com/input-output-hk/universum"; + rev = "15f7db758ff5a24b874de2247f6f7a4576562da5"; + sha256 = "127bs29zpjcc40777dv7figk05gd00b9ja57sp11w440qr5h72hk"; }; } \ No newline at end of file diff --git a/nix/pkgs.nix b/nix/pkgs.nix index a33f9a58fe6..de2510cd0c7 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -75,7 +75,7 @@ let } (hackage: { hsc2hs = hackage.hsc2hs."0.68.4".revisions.default; - # stackage 12.17 beautifully omitts the Win32 pkg + # stackage 12.26 beautifully omitts the Win32 pkg Win32 = hackage.Win32."2.6.2.0".revisions.default; }) ]; diff --git a/pkgs/default.nix b/pkgs/default.nix index dfe9ae23714..d09927648f0 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -660,8 +660,8 @@ license = stdenv.lib.licenses.gpl3; mkDerivation { pname = "DAV"; -version = "1.3.2"; -sha256 = "613314357579b29e1d3fa8451b51e8b9a1307a2b33b65a3f2b2ef2bece025169"; +version = "1.3.3"; +sha256 = "24f49c63bd603b7757569ac0f5842ac30dea2bfcce64d157162a952e576e3991"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -956,8 +956,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "Fin"; -version = "0.2.6.0"; -sha256 = "1c562c390626c7805721917ce5ae20870d1c4f3150f76ee708ed273a601c0ca3"; +version = "0.2.7.0"; +sha256 = "c331fecbdac3f80567c89beb85faaa2bdc1d4a056c56b38b1f18f856056b4970"; libraryHaskellDepends = [ alg base @@ -996,6 +996,28 @@ homepage = "https://github.com/audreyt/findbin"; description = "Locate directory of original program"; license = stdenv.lib.licenses.bsd3; +}) {}; +"FloatingHex" = callPackage +({ + mkDerivation +, base +, stdenv +, template-haskell +}: +mkDerivation { + +pname = "FloatingHex"; +version = "0.4"; +sha256 = "b277054db48d2dec62e3831586f218cbe0a056dec44dbc032e9a73087425a24c"; +libraryHaskellDepends = [ +base +template-haskell +]; +doHaddock = false; +doCheck = false; +description = "Read and write hexadecimal floating point numbers"; +license = stdenv.lib.licenses.bsd3; + }) {}; "FontyFruity" = callPackage ({ @@ -1081,6 +1103,8 @@ mkDerivation { pname = "GLFW-b"; version = "3.2.1.0"; sha256 = "31c022e0ad63f259ff9fa582a235924786e929a95b52efae10a3d29fef7cb6a6"; +revision = "2"; +editedCabalFile = "0xlby7483dv33c13f44kkvmai186g72jhxmcq8749s1hyxi6fqnb"; libraryHaskellDepends = [ base bindings-GLFW @@ -1371,6 +1395,8 @@ mkDerivation { pname = "HPDF"; version = "1.4.10"; sha256 = "de2bfddd93eeef2129a2378e8dce486d086bec3c48ee2a1bf1a5fb01581607d4"; +revision = "1"; +editedCabalFile = "1djn0a9rk3qrbz31bxj115r65p28fi3wzcrkrnjvzibl3450pq30"; libraryHaskellDepends = [ array base @@ -1547,8 +1573,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "HTF"; -version = "0.13.2.4"; -sha256 = "36c5cafd35683c37379a93098dea61e6194aa1b9cfd0cdad4e0f1643f4cf2bf6"; +version = "0.13.2.5"; +sha256 = "365af323c6254ec5c33745e1d42ceeba0940992a43f523608c4dc64d7c49aece"; +revision = "1"; +editedCabalFile = "0l18mp06jjwpjbnvj548naas1xhnc46c8l0pbgzi3bm6siq5hhv6"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -1578,6 +1606,9 @@ unix vector xmlgen ]; +libraryToolDepends = [ +cpphs +]; executableHaskellDepends = [ array base @@ -1589,6 +1620,9 @@ old-time random text ]; +executableToolDepends = [ +cpphs +]; doHaddock = false; doCheck = false; homepage = "https://github.com/skogsbaer/HTF/"; @@ -1785,6 +1819,8 @@ mkDerivation { pname = "HaskellNet"; version = "0.5.1"; sha256 = "3245d31ad76f9f9013a2f6e2285d73ed37376eeb073c100b9a6d19e87f0ca838"; +revision = "1"; +editedCabalFile = "12p3v58jhr54yzsmqgza3rbrp19w2iq5m43g568hcx20n7zwzwjk"; libraryHaskellDepends = [ array base @@ -1930,6 +1966,8 @@ mkDerivation { pname = "HsOpenSSL"; version = "0.11.4.15"; sha256 = "cebdceef21d8f00feaa3dcc31b18fc960bbfeaec1326ece1edeb56d4cc54b545"; +revision = "1"; +editedCabalFile = "0bkcw2pjfgv1bhgkrpncvwq9czfr7cr4ak14n0v8c2y33i33wk5z"; setupHaskellDepends = [ base Cabal @@ -2115,8 +2153,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "IntervalMap"; -version = "0.6.0.0"; -sha256 = "8f7d0d81c23a2d2dc7e7333b82824070a53144d40e08741456c8afe078b2111a"; +version = "0.6.1.0"; +sha256 = "133676b9e01008b9d9bfeb5dbf3f51aabdc53b3a334588e68a8b6f5089ab873c"; libraryHaskellDepends = [ base containers @@ -2188,8 +2226,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "JuicyPixels-blp"; -version = "0.1.0.1"; -sha256 = "2c8e0773e41fb841e90a36fb8c839670d2afebc6b89271f782fc5df250cbcc99"; +version = "0.1.1.0"; +sha256 = "7d2f9e45580ff26a7a15b2fefb7e6582d5a32d7e84f34b99f856ae6451ea8c6d"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -2538,6 +2576,8 @@ mkDerivation { pname = "MissingH"; version = "1.4.1.0"; sha256 = "49ecd2df3ad45d6da64a984e506cd0e2ca02c238a743d757feeea8c4cddce0ca"; +revision = "2"; +editedCabalFile = "1k7d8cgvpmln4imcrfpj4c02n3c5l1gkd5hs4hnar9ln0qh61cfx"; libraryHaskellDepends = [ array base @@ -2602,6 +2642,8 @@ mkDerivation { pname = "MonadRandom"; version = "0.5.1.1"; sha256 = "abda4a297acf197e664695b839b4fb70f53e240f5420489dc21bcf6103958470"; +revision = "3"; +editedCabalFile = "0fiblwmwk48d1g9j99qrcg1ak904csgfb86y80d1nl2vr782cq6w"; libraryHaskellDepends = [ base mtl @@ -2695,8 +2737,8 @@ license = stdenv.lib.licenses.gpl3; mkDerivation { pname = "Network-NineP"; -version = "0.4.3"; -sha256 = "8169e46ddfd690b96f25bc9a577568a363a270c2bddbb9fb3e1e7f1959644ec3"; +version = "0.4.4"; +sha256 = "fe2b0a7eadcf9329f0865564324052324770de035f1d5caa67a5bd5b634c3b85"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -2824,8 +2866,8 @@ mkDerivation { pname = "OneTuple"; version = "0.2.2"; sha256 = "d82e702485bcbdefbda0d12b6a250d318a269572ee58d63b60eee531e56624dc"; -revision = "1"; -editedCabalFile = "07jd23glblzmnlw7sn565sk9gm7vj9h459j46bkbcrrxnp0n0myq"; +revision = "2"; +editedCabalFile = "1ii7hpmxi794xywx89agnvinxgral1rfn5hfnanr4zw26nczhcv3"; libraryHaskellDepends = [ base ]; @@ -3038,6 +3080,8 @@ mkDerivation { pname = "QuickCheck"; version = "2.11.3"; sha256 = "488c5652139da0bac8b3e7d76f11320ded298549e62db530938bfee9ca981876"; +revision = "2"; +editedCabalFile = "12c3jgdfh57b1cxfsm2qjvpjp3w8v2gxyakkhqlvliraidqq93jy"; libraryHaskellDepends = [ base containers @@ -3465,6 +3509,8 @@ mkDerivation { pname = "Spock"; version = "0.13.0.0"; sha256 = "8a73a3ddeb8982cd7c10f650e9adbfec2f6abac8da3a912bdb3025dc8d731ad0"; +revision = "1"; +editedCabalFile = "1glpfh1w9zahfwi4nc7kbxd429ni9xwvx3cd880mi3zdixlz4ghn"; libraryHaskellDepends = [ base base64-bytestring @@ -3677,10 +3723,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "TypeCompose"; -version = "0.9.13"; -sha256 = "0c96cca12f9a3a1da0abc3cf843d33b9e3858dbdc794a52588bf166372a3b432"; -revision = "2"; -editedCabalFile = "026h1zgp7fj8ccq8rpzcq0s4wdbw2v7fskcj73n40mfhv0gx26y0"; +version = "0.9.14"; +sha256 = "56034f7917c7464e3be93754c36302d91b8d750f84f6ed7af146f94c4fd05a57"; +revision = "1"; +editedCabalFile = "1pxg6az5vkl0zvs3zdvvvnhxqawd9fkkd44jmzzzyyibppgni6x4"; libraryHaskellDepends = [ base base-orphans @@ -4117,8 +4163,8 @@ mkDerivation { pname = "active"; version = "0.2.0.13"; sha256 = "5d9a141d58bcefbf699ed233a22309ded671c25ed64bcee11a663d00731280fb"; -revision = "7"; -editedCabalFile = "0z4l6j1q3y5zq4941bsb6ypkhfg3pyvb5gcmasymh2nj9g952xkd"; +revision = "8"; +editedCabalFile = "1j771jblfaygc3qf8iaw9b87yrqxhkq79mdi9zyhvlr2vcac362s"; libraryHaskellDepends = [ base lens @@ -4208,8 +4254,8 @@ mkDerivation { pname = "adjunctions"; version = "4.4"; sha256 = "507c2ef55337ae61c805f8cbc1213dfd7d2b85187342675d662254b8d8a16ae9"; -revision = "1"; -editedCabalFile = "0582nnn3fab63nd7ng8smk2c8j7pciiyzfj1na34wqid2hs675as"; +revision = "2"; +editedCabalFile = "1yfsjx7dqikg3hvld7i91xfsg5lawmr5980lvfd794sybmgxsf17"; libraryHaskellDepends = [ array base @@ -4266,41 +4312,37 @@ license = stdenv.lib.licenses.bsd3; mkDerivation , base , convertible -, hmpfr , hspec -, integer-gmp , integer-logarithms , lens , mixed-types-num , QuickCheck , regex-tdfa +, rounded , stdenv , template-haskell }: mkDerivation { pname = "aern2-mp"; -version = "0.1.2.0"; -sha256 = "9de6632ad943c044115e713f6c87078f33c37c6bde36ff472a5142a96cf53c8c"; -revision = "1"; -editedCabalFile = "09b92kf60m4v0xn2nm9h8wkg8wr7dc1na5c9mg2lk3kplf60sfvk"; +version = "0.1.3.1"; +sha256 = "758b01846bf21c90aad334867fb29e3115d4b174ac68bd9286ab7ddc7467d1bf"; libraryHaskellDepends = [ base convertible -hmpfr hspec -integer-gmp integer-logarithms lens mixed-types-num QuickCheck regex-tdfa +rounded template-haskell ]; doHaddock = false; doCheck = false; homepage = "https://github.com/michalkonecny/aern2"; -description = "Multi-precision floats via MPFR"; +description = "Multi-precision ball (interval) arithmetic"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -4530,6 +4572,8 @@ mkDerivation { pname = "aeson-compat"; version = "0.3.9"; sha256 = "e043941ba761c13a3854fc087521b864b56b2df874154e42aedb67b2a77f23c8"; +revision = "1"; +editedCabalFile = "0m154kalrzqbnp41306i6md3ncvw02myb730bz8bv6ah59jq1qy6"; libraryHaskellDepends = [ aeson attoparsec @@ -4576,6 +4620,8 @@ mkDerivation { pname = "aeson-diff"; version = "1.1.0.5"; sha256 = "61d9dd60b6c19dd5aa350b85083ebed3eab8d8611893db1279e55e43d7c7fbcf"; +revision = "1"; +editedCabalFile = "0a29nph4a1ny365nhsxlm73mk6zgaam4sfx6knzqjy8dxp1gkj48"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -4634,8 +4680,8 @@ mkDerivation { pname = "aeson-extra"; version = "0.4.1.1"; sha256 = "d48a65d976cbf496c8e5e9c927118ffcc878d6a83adf2fc9cebd418186d6fdf8"; -revision = "2"; -editedCabalFile = "1iiibpr8pcdr0bjp0rhf1sxvs0kv66jm01nwlhj4243864qx476r"; +revision = "4"; +editedCabalFile = "0ja5vr9w22wyknkjyl7w43frdfdfnxphvrai1b18lhinjqcd9bl5"; libraryHaskellDepends = [ aeson aeson-compat @@ -4872,6 +4918,8 @@ mkDerivation { pname = "aeson-typescript"; version = "0.1.1.0"; sha256 = "77a3b10384383f0188feef57015a896e89bac9882df4c83bed765f70b77aa46b"; +revision = "1"; +editedCabalFile = "1y5baadwfpyszd78dfbcln93ypg7ai6qvbdz7r95ili8p0vwikbk"; libraryHaskellDepends = [ aeson base @@ -5076,8 +5124,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "alg"; -version = "0.2.8.0"; -sha256 = "39bbd5c5ea68fde4073b53a8f66947c4963726396f532c0c6b187d4e540385ff"; +version = "0.2.9.0"; +sha256 = "98724f959ada2387e94cc17a7bdc39eb868d8ef291daa12b82535b517eedb470"; libraryHaskellDepends = [ base util @@ -5110,6 +5158,8 @@ mkDerivation { pname = "algebra"; version = "4.3.1"; sha256 = "25982f929b6f9930ad4df7b2c4084da473178a6e1f33ccc556ec96ee6f541224"; +revision = "1"; +editedCabalFile = "1lxxbbibsf1lkm6fv0svfvfbr0dg16jwcm18hcmfgwypzxqdrbdz"; libraryHaskellDepends = [ adjunctions array @@ -7653,6 +7703,8 @@ mkDerivation { pname = "ansi-wl-pprint"; version = "0.6.8.2"; sha256 = "a630721bd57678c3bfeb6c703f8249e434cbf85f40daceec4660fb8c6725cb3e"; +revision = "2"; +editedCabalFile = "0xq83bwya8mfijp3dn9zfsqbbkl1wpzfjcmnkw8a06icjh9vg458"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -7738,8 +7790,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "appar"; -version = "0.1.4"; -sha256 = "58ea66abe4dd502d2fc01eecdb0828d5e214704a3c1b33b1f8b33974644c4b26"; +version = "0.1.7"; +sha256 = "f6de4f1d1332d665057a9fd1af6b805f66cf04299b03f53696f3c9db4f7ff21f"; libraryHaskellDepends = [ base bytestring @@ -8184,8 +8236,8 @@ mkDerivation { pname = "async"; version = "2.2.1"; sha256 = "8f0b86022a1319d3c1c68655790da4b7f98017982e27ec3f3dbfe01029d39027"; -revision = "1"; -editedCabalFile = "0lg8c3iixm7vjjq2nydkqswj78i4iyx2k83hgs12z829yj196y31"; +revision = "2"; +editedCabalFile = "130rc6icx3h471qs417lkw9b2pfn27xd009liw58cmdk66zscizp"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -8458,8 +8510,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "atomic-write"; -version = "0.2.0.5"; -sha256 = "dbc7b4c31c734ad12d8f6c05b5d1384ee57f50ad8ff1a703d560b39e2f0458c5"; +version = "0.2.0.6"; +sha256 = "d4634b777ea8df551bc619125b6240047c74b6454c1a3caaad10496a39d443f7"; libraryHaskellDepends = [ base bytestring @@ -8494,8 +8546,8 @@ mkDerivation { pname = "attoparsec"; version = "0.13.2.2"; sha256 = "dd93471eb969172cc4408222a3842d867adda3dd7fb39ad8a4df1b121a67d848"; -revision = "2"; -editedCabalFile = "1j06na26rsahrbkzrs71nl7ym8fk390pnvh577wlxs4ik6hsn2va"; +revision = "3"; +editedCabalFile = "1birva836xdp92lf1v5yrs8lj3bgj9vnarrfh2ssfxxacqj1gjji"; libraryHaskellDepends = [ array base @@ -8780,6 +8832,8 @@ mkDerivation { pname = "authenticate"; version = "1.3.4"; sha256 = "3fd566dbfdf75d81ad1bebd19facb9f01509ead6e27d9aed802404ecde932fb8"; +revision = "1"; +editedCabalFile = "0ipbmf633c0kmcwwb7d51ac8s4220nfyk5xghhq66mpgna77j2c2"; libraryHaskellDepends = [ aeson attoparsec @@ -9379,15 +9433,15 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "base64-bytestring"; -version = "1.0.0.1"; -sha256 = "ab25abf4b00a2f52b270bc3ed43f1d59f16c8eec9d7dffb14df1e9265b233b50"; +version = "1.0.0.2"; +sha256 = "193654ed9bd9e7f20163c9b70bab32d33010be50a5e1e8e2258229faf32a608c"; libraryHaskellDepends = [ base bytestring ]; doHaddock = false; doCheck = false; -homepage = "https://github.com/bos/base64-bytestring"; +homepage = "https://github.com/haskell/base64-bytestring"; description = "Fast base64 encoding and decoding for ByteStrings"; license = stdenv.lib.licenses.bsd3; @@ -9468,8 +9522,8 @@ mkDerivation { pname = "basement"; version = "0.0.8"; sha256 = "c7f41b97f2b0a71804c3c7d760047dc9adc9734e789084ca1198c4764ce192a4"; -revision = "1"; -editedCabalFile = "005w4d6bkx6xq1whgwna4rqmxc36vgjbvb8q35sh1z2s76l89ajy"; +revision = "2"; +editedCabalFile = "0d1cw4nyp2r2cd9kw4k3a2nq10hbq28108zsfrkdq1gbs7pcf7j3"; libraryHaskellDepends = [ base ghc-prim @@ -9753,6 +9807,8 @@ mkDerivation { pname = "bench"; version = "1.0.12"; sha256 = "a6376f4741588201ab6e5195efb1e9921bc0a899f77a5d9ac84a5db32f3ec9eb"; +revision = "1"; +editedCabalFile = "0sk6vkjwk7g1diwah67ifj7s69qvwi52ngaijkfx5prn0vz24ldn"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -9845,6 +9901,8 @@ mkDerivation { pname = "bhoogle"; version = "0.1.3.5"; sha256 = "c9e57081ae65d50c68ec6ad583ffe7bcaa79589dcc743ebce153f030034f2fbe"; +revision = "2"; +editedCabalFile = "0jwfw2xa55ysfxyzp5n2pf2vq753iagpmvg9xnj69nv6ly9whfp7"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -10846,8 +10904,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "bitset-word8"; -version = "0.1.1.0"; -sha256 = "14e9eded3d5f535dbb1ce6debe4edd2d227765af31cc58e072b78824cd9f9b06"; +version = "0.1.1.1"; +sha256 = "ffc0f8508049717192021dabcfe77d65f604cbe107da6b8b76d45b891dbe52de"; libraryHaskellDepends = [ base containers @@ -10966,8 +11024,8 @@ mkDerivation { pname = "blank-canvas"; version = "0.6.3"; sha256 = "739d24ff7035fd675e95c2d33bd9d3cb7d1ef0cca94c16bbf950c4a7f7b320b4"; -revision = "2"; -editedCabalFile = "0sybv2swx9gwpkjh704xfmilm9jhdb66jqc296agpzp85s2s75zz"; +revision = "3"; +editedCabalFile = "15gcxvbbb0pjnw6wh4jvc4xqvv1gr493h2s9yclf81vfg7bry24w"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson @@ -11043,8 +11101,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "blas-ffi"; -version = "0.0.1.1"; -sha256 = "ee0d88ad15d127e08dd273264befe2259bb64646156adb9e830aa8692dc3f036"; +version = "0.0.2"; +sha256 = "cc6f6b33062c81cf0fdd9f0c1bf1b600d546b0dfc8f773ef603068710455f810"; +isLibrary = true; +isExecutable = true; libraryHaskellDepends = [ base netlib-ffi @@ -11210,6 +11270,8 @@ mkDerivation { pname = "blaze-markup"; version = "0.8.2.2"; sha256 = "c6f0cf8fd707ba8c0b700e0c5ad6a1212c8b57d46a9cbdfb904d8bf585ad82e1"; +revision = "1"; +editedCabalFile = "0ivspcxz0b2r7kcas5hlw0fh92883r8ghwz9lck7nyqn6wn5i8zx"; libraryHaskellDepends = [ base blaze-builder @@ -11520,6 +11582,8 @@ mkDerivation { pname = "both"; version = "0.1.1.0"; sha256 = "6f4ee8b7745fb3054282240fe941dd74cf2481f1a07b170d211c2b8791340e8e"; +revision = "1"; +editedCabalFile = "0fi2lvxcdnj9bi683kl840xpyj12wxwxvqbi86a6qp4r8bq8442n"; libraryHaskellDepends = [ base semigroups @@ -11557,8 +11621,8 @@ mkDerivation { pname = "bound"; version = "2.0.1"; sha256 = "294a206f33b6583e56bd3aad620e4a7bd0a22b4bf4c6fe5988b2fe55159fbb76"; -revision = "6"; -editedCabalFile = "18fqzxy3f8r09jwcsfzjlrpvnlz711jq5gcjp4dal1pvsbbw6i09"; +revision = "7"; +editedCabalFile = "0amr5rpq8andqq3z2dsh8hn67g3x7ykcmqq899vbkxwnpvg60h5r"; setupHaskellDepends = [ base Cabal @@ -11913,8 +11977,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "bson"; -version = "0.3.2.6"; -sha256 = "738dc3615aafa1dd553f51a67373af2f27db90e75266ed6cdee5cecb7f6fce80"; +version = "0.3.2.7"; +sha256 = "27329dcd593fd7503e7cf6705c863ed5c76b2fc816342e194c79d5a1d4c87f2b"; +revision = "1"; +editedCabalFile = "1y6gy4rq2wb123p1qc35p0hnk8dqh2hnlys2c97znwcjjsd5p203"; libraryHaskellDepends = [ base binary @@ -12293,6 +12359,8 @@ mkDerivation { pname = "bytes"; version = "0.15.5"; sha256 = "039935e6b367eb8657aa3eb109e719b257a06524b0d9ff5246e8029bb7a07118"; +revision = "1"; +editedCabalFile = "0k05cszpxmdwgnbxhmlmmvsxkwlanvz8dn0p3f6bzs8qlv3kbhm7"; setupHaskellDepends = [ base Cabal @@ -12333,6 +12401,8 @@ mkDerivation { pname = "byteset"; version = "0.1.1.0"; sha256 = "13499c5b279f022097e9ae1d0aeef3fcea12b7f18f50157d4950aec58741afa1"; +revision = "1"; +editedCabalFile = "1lgxxxrmw4g32pa861n6qbfpzwv14wfjrlp4hv5zd9hygy6v6q2p"; libraryHaskellDepends = [ base binary @@ -12921,6 +12991,7 @@ license = stdenv.lib.licenses.bsd3; , conduit-extra , cookie , cryptonite +, data-default , dhall , directory , ed25519 @@ -12940,6 +13011,7 @@ license = stdenv.lib.licenses.bsd3; , process , protolude , resourcet +, retry , safe-exceptions , servant , servant-auth @@ -12957,8 +13029,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "cachix"; -version = "0.1.2"; -sha256 = "c7ec670eb1d0d6c00fc13f0703094faaeb177cca14bd38f7c13a3c4aa964a2de"; +version = "0.1.3"; +sha256 = "a0fbaad0d8b286738ae58ccbb7a2fcd1e6cba983d973a9f1b7952399739b0f6e"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -12973,6 +13045,7 @@ conduit conduit-extra cookie cryptonite +data-default dhall directory ed25519 @@ -12991,6 +13064,7 @@ optparse-applicative process protolude resourcet +retry safe-exceptions servant servant-auth @@ -13005,47 +13079,8 @@ uri-bytestring versions ]; executableHaskellDepends = [ -async base -base16-bytestring -base64-bytestring -bifunctors -bytestring cachix-api -conduit -conduit-extra -cookie -cryptonite -dhall -directory -ed25519 -filepath -fsnotify -here -http-client -http-client-tls -http-conduit -http-types -lzma-conduit -megaparsec -memory -mmorph -optparse-applicative -process -protolude -resourcet -safe-exceptions -servant -servant-auth -servant-auth-client -servant-client -servant-client-core -servant-streaming-client -streaming -text -unix -uri-bytestring -versions ]; executableToolDepends = [ hspec-discover @@ -13088,8 +13123,8 @@ license = stdenv.lib.licenses.asl20; mkDerivation { pname = "cachix-api"; -version = "0.1.0.2"; -sha256 = "f69500953e74c1d19230b4c840660c7f56edb04bf65550a939f9e31e479a0a4b"; +version = "0.1.0.3"; +sha256 = "aefd2d623cb8b0da0ac6861df37f2f5673659ebd341943e4da9c538befa84502"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -13119,28 +13154,7 @@ transformers ]; executableHaskellDepends = [ aeson -amazonka base -base16-bytestring -bytestring -conduit -cookie -cryptonite -http-api-data -http-media -lens -memory -servant -servant-auth -servant-auth-server -servant-auth-swagger -servant-streaming -servant-swagger -servant-swagger-ui-core -string-conv -swagger2 -text -transformers ]; doHaddock = false; doCheck = false; @@ -13343,8 +13357,8 @@ version = "1.1.0"; src = fetchgit { url = "https://github.com/input-output-hk/cardano-crypto"; -sha256 = "1jyzai4sn9hi3p6r97h54f9a7an7vk38lwrbl4mds9zmdsw5f5ad"; -rev = "45e1a0eafac774c109704be44ca06fd8cae193ba"; +sha256 = "0hl2n3bba5v2j0lmxhs7hs01z3aznh2bwf9cb434icq2g0bl8ms3"; +rev = "4590efa638397e952a51a8994b5543e4ea3c1ecd"; fetchSubmodules = true; }; @@ -13532,6 +13546,7 @@ license = stdenv.lib.licenses.bsd3; , http-types , lens , lifted-async +, megaparsec , memory , monad-control , mtl @@ -13540,7 +13555,6 @@ license = stdenv.lib.licenses.bsd3; , network-transport , network-transport-inmemory , optparse-applicative -, parsec , pvss , QuickCheck , quickcheck-instances @@ -13637,6 +13651,7 @@ http-conduit http-types lens lifted-async +megaparsec memory monad-control mtl @@ -13644,7 +13659,6 @@ neat-interpolation network network-transport optparse-applicative -parsec pvss QuickCheck quickcheck-instances @@ -14155,12 +14169,12 @@ license = stdenv.lib.licenses.mit; , hspec-discover , lens , lrucache +, megaparsec , memory , mmorph , mono-traversable , mtl , neat-interpolation -, parsec , pvss , QuickCheck , random @@ -14222,12 +14236,12 @@ generic-arbitrary hashable lens lrucache +megaparsec memory mmorph mono-traversable mtl neat-interpolation -parsec QuickCheck reflection safe-exceptions @@ -14510,8 +14524,8 @@ license = stdenv.lib.licenses.mit; , formatting , iproute , lens +, megaparsec , optparse-applicative -, parsec , QuickCheck , safe , servant-client @@ -14555,8 +14569,8 @@ filepath formatting iproute lens +megaparsec optparse-applicative -parsec safe servant-client temporary @@ -14631,11 +14645,11 @@ license = stdenv.lib.licenses.mit; , hspec-discover , http-api-data , lens +, megaparsec , memory , mmorph , monad-control , mtl -, parsec , QuickCheck , quickcheck-instances , random @@ -14696,11 +14710,11 @@ formatting hashable http-api-data lens +megaparsec memory mmorph monad-control mtl -parsec random reflection resourcet @@ -15721,12 +15735,12 @@ license = stdenv.lib.licenses.mit; , kademlia , lens , lzma-conduit +, megaparsec , mtl , network-info , network-transport , network-transport-tcp , optparse-applicative -, parsec , QuickCheck , safe-exceptions , serokell-util @@ -15788,12 +15802,12 @@ iproute kademlia lens lzma-conduit +megaparsec mtl network-info network-transport network-transport-tcp optparse-applicative -parsec safe-exceptions serokell-util stm @@ -16667,7 +16681,6 @@ license = stdenv.lib.licenses.mit; , monad-control , mtl , optparse-applicative -, parsec , pretty-show , process , QuickCheck @@ -16730,7 +16743,6 @@ mmorph monad-control mtl optparse-applicative -parsec process reflection resourcet @@ -17466,8 +17478,8 @@ mkDerivation { pname = "cassava"; version = "0.5.1.0"; sha256 = "762c8aaea2cdad61f52bad1b9f1f3b32764b4b6da03371aba6e5017f69614277"; -revision = "1"; -editedCabalFile = "1brz20js95synh0yw942ihy4y9y6nk4xnsqcjqi9580y24zcigkl"; +revision = "2"; +editedCabalFile = "13mbhan3agzf8ki8hcac1xf50h9nbzx2b47zjqrch2050v6xa351"; configureFlags = [ "-f-bytestring--lt-0_10_4" ]; @@ -17598,8 +17610,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "category"; -version = "0.2.0.1"; -sha256 = "07d0b37638ec5c46d96874c9318ca385ea489ae0538c62e9c559b6f56809ab6c"; +version = "0.2.1.0"; +sha256 = "b0e753d69d8e46c3cf7f999003032eaa788d3a386eef4a5539cd0e9f1b475ddb"; libraryHaskellDepends = [ alg base @@ -17633,8 +17645,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "cayley-client"; -version = "0.4.7"; -sha256 = "ba1bc81ef9d15d076d22372444d4c3c9b6dc7a6a9f12dd2be80d261119ad598e"; +version = "0.4.8"; +sha256 = "b1b1328fb855211a78b9c7da74eecc7ee81c9f92101debb9ca87238d66c01926"; libraryHaskellDepends = [ aeson attoparsec @@ -17873,8 +17885,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "chan"; -version = "0.0.3"; -sha256 = "f9e988023fd53fc60b00fbb5546f9e75045ab1dc83e21aa0c56288c681072232"; +version = "0.0.4.1"; +sha256 = "926fcb205f6d43ed3a2b85b8e88a6c99a2deb097bc7988116c493a04a52547cf"; libraryHaskellDepends = [ async base @@ -18113,10 +18125,10 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "cheapskate"; -version = "0.1.1"; -sha256 = "621041bf50cb9d94bf6a4eb90a038e0b0a6cb9794802f985fe126a73e08938c2"; +version = "0.1.1.1"; +sha256 = "d50d4f6978343f4990aeb6debf11e33054d8dc5ec4390196f12b8b68176ade62"; revision = "1"; -editedCabalFile = "1zrbp211ciia8j1br6krbxbqsj69kmx0rgkbvbpxdklmbgpfam3b"; +editedCabalFile = "0mf6qdpgh56n0ynyy272vhkk2bjrdhppks2vrw79gk0kzn29fggh"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -18416,10 +18428,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "cipher-aes128"; -version = "0.7.0.3"; -sha256 = "6f27bea8bcd1987072fc75b6b423ae9c691574324b6a328ec1e2866f84412e3a"; -revision = "1"; -editedCabalFile = "1c3lr80vcdrajlvks9ny9s8m2n2kc9jw14nh65668dfikp0pqc61"; +version = "0.7.0.4"; +sha256 = "cd8d8987c1a1839f3c66e655277981083be85489d34b6b47f95d7e82d2d10285"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ @@ -18601,8 +18611,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "cisco-spark-api"; -version = "0.1.0.3"; -sha256 = "7e962a9f34e5b0c66fe858f4c6a322d22586bc7a8ac602a317697d2d9b6228ba"; +version = "0.1.0.4"; +sha256 = "6f550e999cb3b3bf1d4d041363c0bead0eec02f078dc51301873cc450143a244"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -18631,7 +18641,7 @@ utf8-string doHaddock = false; doCheck = false; homepage = "https://github.com/nshimaza/webex-teams-api#readme"; -description = "A Haskell bindings for Webex Teams API"; +description = "DEPRECATED in favor of webex-teams-api"; license = stdenv.lib.licenses.mit; }) {}; @@ -19060,8 +19070,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "classyplate"; -version = "0.3.1.0"; -sha256 = "9548f228998d7aa00372385e94d51d2802f1a5400b3b85dcb31fda4d75f7d12b"; +version = "0.3.2.0"; +sha256 = "712eefbe6b6fd92d6e5e7982d82a27e45b7992a83c2b09fc8696b1e30752527a"; libraryHaskellDepends = [ base template-haskell @@ -19216,6 +19226,8 @@ mkDerivation { pname = "closed"; version = "0.2.0"; sha256 = "7a301c6c543ae60354b737c56c2259dfc9e01ddf9eee452e4469c6262c53c21c"; +revision = "1"; +editedCabalFile = "0n4g5in0lzy0gs04jj4y0kb3ndychp6nd92pqcsy80bqlllqv2a9"; libraryHaskellDepends = [ aeson base @@ -19690,6 +19702,8 @@ mkDerivation { pname = "colour"; version = "2.3.4"; sha256 = "0f439f00b322ce3d551f28a4dd1520aa2c91d699de4cdc6d485b9b04be0dc5eb"; +revision = "1"; +editedCabalFile = "1awhbn3pk4zgzpnbbhb10rbxzbb4fz5gywa5h3xl589dclv912ls"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -19768,21 +19782,24 @@ license = stdenv.lib.licenses.bsd3; , random , semigroups , stdenv +, vector }: mkDerivation { pname = "commutative"; -version = "0.0.1.4"; -sha256 = "0de746012c73543b5dcf649434046e36d5e158e0967e8e2ae122e85d5457c9cf"; +version = "0.0.2"; +sha256 = "ccbc6a445bbc5c26a504a322664b2275e9834fdc17c80a2bdcef0dc517609969"; libraryHaskellDepends = [ base random semigroups +vector ]; doHaddock = false; doCheck = false; +homepage = "https://github.com/athanclark/commutative#readme"; description = "Commutative binary operations"; -license = stdenv.lib.licenses.mit; +license = stdenv.lib.licenses.bsd3; }) {}; "comonad" = callPackage @@ -20127,6 +20144,8 @@ mkDerivation { pname = "compressed"; version = "3.11"; sha256 = "d77bbf2f445d32f138dfde9e860e68db5de8ae04c52ffda23941ddf7bdabdd3d"; +revision = "1"; +editedCabalFile = "0h3kfr2kdn74vk0mam5mwk6phclrcm79khd8yz2pp8j9zv1v8q3r"; libraryHaskellDepends = [ base comonad @@ -20190,8 +20209,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "concurrency"; -version = "1.6.1.0"; -sha256 = "40a4093192666ca375c0b8f5cef1ab4dd1c4197d8131159e96827ea15f669e01"; +version = "1.6.2.0"; +sha256 = "c8e43e6d19f075e7a66a7191350eba0d177b5339ba6db6d3bcfde2d73a0f9000"; libraryHaskellDepends = [ array atomic-primops @@ -20253,8 +20272,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "concurrent-output"; -version = "1.10.7"; -sha256 = "605015aa15315a3df5fe8e864a313661e7fd95b2c25f8f96a0484b9a6c40bd70"; +version = "1.10.9"; +sha256 = "8cc49408e957c65359182fbfcda80717b931915d101e4be55ccb26c44b098e57"; libraryHaskellDepends = [ ansi-terminal async @@ -20674,8 +20693,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "config-ini"; -version = "0.2.2.0"; -sha256 = "364d67b876abf867d97eaacac630e920521ff96478fe9869a41983893ce140a0"; +version = "0.2.4.0"; +sha256 = "6e5194e8acb7d189f0904852138990d03b64f86b9fde8f591ee1341d5627d535"; libraryHaskellDepends = [ base containers @@ -20869,6 +20888,8 @@ mkDerivation { pname = "connection"; version = "0.2.8"; sha256 = "70b1f44e8786320c18b26fc5d4ec115fc8ac016ba1f852fa8137f55d785a93eb"; +revision = "2"; +editedCabalFile = "0bhwcd9dqa2jk23bdz3z3vn2p1gzssinp96dxzznb7af4y5x2gmk"; libraryHaskellDepends = [ base byteable @@ -20993,6 +21014,8 @@ mkDerivation { pname = "constraints"; version = "0.10.1"; sha256 = "5880ec261e053841b307c7c8c59614f46c2efbd5189f0f2a3c817589cedec3f7"; +revision = "1"; +editedCabalFile = "1i2rd805mjz5q7s98ryy1m91zd4b9hx92gw1rwr6kpibqqw9smcb"; libraryHaskellDepends = [ base binary @@ -21189,13 +21212,15 @@ mkDerivation { pname = "control-dsl"; version = "0.2.1.3"; sha256 = "e8c795e256030194ef9beb8009ed49f1257790ad1b51d3f629c98f6ce5e56967"; +revision = "2"; +editedCabalFile = "18jypzsawq0mp12i35f58px80i3k07ri0g07wcrh6af93vqkhvil"; libraryHaskellDepends = [ base ]; doHaddock = false; doCheck = false; homepage = "https://github.com/Atry/Control.Dsl#readme"; -description = "An alternative to monads for control flow DSLs"; +description = "An alternative to monads in do-notation"; license = stdenv.lib.licenses.bsd3; }) {}; @@ -21233,6 +21258,8 @@ mkDerivation { pname = "control-monad-omega"; version = "0.3.1"; sha256 = "383b98ecf5db5add42f318672af9eb1c8b9d99ec42d48c240e209a93b5cf1186"; +revision = "1"; +editedCabalFile = "029v5j0mnlzzn6my7jgw26gdm5fbs2h7y395zk1q7r5bfar00q58"; libraryHaskellDepends = [ base ]; @@ -21353,6 +21380,8 @@ mkDerivation { pname = "country"; version = "0.1.6"; sha256 = "09b36e30dfb1fa5fa7a2c5c38f316a70e0c740b8a4dd6e340abe9770ad149928"; +revision = "3"; +editedCabalFile = "034cd94hiwgci0qhkdkkqmx2igmf1wxmd4b70g6sdlk1kklcn7x1"; libraryHaskellDepends = [ aeson attoparsec @@ -21687,6 +21716,38 @@ homepage = "https://gitlab.com/twittner/cql-io/"; description = "Cassandra CQL client"; license = stdenv.lib.licenses.mpl20; +}) {}; +"crackNum" = callPackage +({ + mkDerivation +, array +, base +, FloatingHex +, stdenv +}: +mkDerivation { + +pname = "crackNum"; +version = "2.3"; +sha256 = "428f25cfa0f7c4c126ee96fb9122966c2b175a194d59c200470a6f689ec038f3"; +isLibrary = true; +isExecutable = true; +libraryHaskellDepends = [ +array +base +FloatingHex +]; +executableHaskellDepends = [ +array +base +FloatingHex +]; +doHaddock = false; +doCheck = false; +homepage = "http://github.com/LeventErkok/CrackNum"; +description = "Crack various integer, floating-point data formats"; +license = stdenv.lib.licenses.bsd3; + }) {}; "credential-store" = callPackage ({ @@ -22061,24 +22122,37 @@ license = stdenv.lib.licenses.bsd3; "crypto-enigma" = callPackage ({ mkDerivation +, ansi-terminal , base , containers -, MissingH , mtl +, optparse-applicative , split , stdenv +, text }: mkDerivation { pname = "crypto-enigma"; -version = "0.0.2.14"; -sha256 = "37a5d239b7a7ec1ad635b97e22406038911e70aaf01ce51396904578e27dfb89"; +version = "0.0.3.1"; +sha256 = "22221a31e8a1e1e63ab27733e037bf5b5b5a59b07463590ce69f7a42aeff4d45"; +isLibrary = true; +isExecutable = true; libraryHaskellDepends = [ base containers -MissingH mtl split +text +]; +executableHaskellDepends = [ +ansi-terminal +base +containers +mtl +optparse-applicative +split +text ]; doHaddock = false; doCheck = false; @@ -22193,6 +22267,8 @@ mkDerivation { pname = "crypto-random"; version = "0.0.9"; sha256 = "170a7a18441379c2d1c19b502ee5919026a19adc6e78641cd4fb40b1d69a6904"; +revision = "1"; +editedCabalFile = "1ax1iafbbqkcrvjnnxlvqh2zgpx8xzcbxl6l870207bpzwrja2f1"; libraryHaskellDepends = [ base bytestring @@ -22782,6 +22858,8 @@ mkDerivation { pname = "cubicbezier"; version = "0.6.0.5"; sha256 = "c5c9825782d97c4059b2261dddd6471fdb270ddac0ff97d6d02d4f0d44b62758"; +revision = "1"; +editedCabalFile = "0dii4z0cl1ylvay1n5z90d6rbvnk9k30q81i6izhgxbgdawwhh33"; libraryHaskellDepends = [ base containers @@ -23389,8 +23467,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "data-clist"; -version = "0.1.2.1"; -sha256 = "9a1882e286e2f5428517375e129dc3c6fb12114f360cd4a767e7a699d67c8416"; +version = "0.1.2.2"; +sha256 = "d1a73743b45c36ac75cfa4ebdbb3fc63860093651f05dc171d28e91d688d2baa"; libraryHaskellDepends = [ base deepseq @@ -24040,6 +24118,7 @@ license = stdenv.lib.licenses.bsd3; , base , buffer-builder , bytestring +, containers , dlist , http-client , http-client-tls @@ -24053,20 +24132,22 @@ license = stdenv.lib.licenses.bsd3; , text , time , transformers-base +, unliftio , unordered-containers , vector }: mkDerivation { pname = "datadog"; -version = "0.2.2.0"; -sha256 = "450fb6fba21d9739c8269f167ecf084d966e2248084386ab5c04b2748b4b6944"; +version = "0.2.3.0"; +sha256 = "9bb5eda1c704261160e0714499eef8c03dc2dd4d8673ad085e80c164445c1934"; libraryHaskellDepends = [ aeson auto-update base buffer-builder bytestring +containers dlist http-client http-client-tls @@ -24079,6 +24160,7 @@ old-locale text time transformers-base +unliftio unordered-containers vector ]; @@ -24114,6 +24196,8 @@ mkDerivation { pname = "datasets"; version = "0.2.5"; sha256 = "9a9139130936102bbfa60324e1ed7f9fd5b9a68db096917f589e8bb07999fdba"; +revision = "1"; +editedCabalFile = "1q96bxn8cjzr3pnygxz1s7bjk40l9kkxji9w4hxjbl3qh1m2i1sw"; libraryHaskellDepends = [ aeson attoparsec @@ -24249,6 +24333,8 @@ mkDerivation { pname = "dbus"; version = "1.0.1"; sha256 = "a325b5c6958a343b30fd378d54ac01f9db889a4d7cadb14b2103da7ef4e7e8f5"; +revision = "2"; +editedCabalFile = "0fskpis9ryzj4bkzjh9h2hdw2lwr38qjh74drazfq25w5ba2zj3j"; libraryHaskellDepends = [ base bytestring @@ -24497,8 +24583,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "dejafu"; -version = "1.11.0.3"; -sha256 = "dd2e23a975eddc01d4f281f6c9c19a0e815ed39dd1546a8a9661b62936074aa4"; +version = "1.11.0.4"; +sha256 = "af25f89cf243d3ccd038f7e9c9d52fc462061587fa05852b7a9e36db70257a7e"; libraryHaskellDepends = [ base concurrency @@ -24888,6 +24974,8 @@ mkDerivation { pname = "dhall-json"; version = "1.2.3"; sha256 = "83cb1e27f937c50ba6852eeb55ed3f06af8db9b73716bfa8c1326699482ffcda"; +revision = "1"; +editedCabalFile = "02zwka1vav66z3528hmhhlsnwmsi0haj4bhp7r57w2j877c25z2h"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -24927,8 +25015,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "dhall-text"; -version = "1.0.13"; -sha256 = "50050ac45ade8ab12c5a219914c903b1f6f632c8bc98d276e691f2cc05837c25"; +version = "1.0.14"; +sha256 = "5e9b8f8e6d9f711dab814be92392b9063ee1c8bc41c299d66278c0af1cb90591"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -25239,6 +25327,8 @@ mkDerivation { pname = "diagrams-cairo"; version = "1.4.1"; sha256 = "df64fd41f4c8eb37e2edcc458c4d49c574d22cf7ca2ef7ceb5de4a79f6436658"; +revision = "1"; +editedCabalFile = "0irrv1mf7lz3n4dy5pz9y6kw00v1rly47g2g6hi95nj6a6hib3z0"; libraryHaskellDepends = [ array base @@ -25348,8 +25438,8 @@ mkDerivation { pname = "diagrams-contrib"; version = "1.4.3"; sha256 = "65fba87bb7752b1053fb3ab8e4ae30d5920208ff48441c4d8969cdbe73402007"; -revision = "1"; -editedCabalFile = "16ici9kx7cnva1ihhin5nyc1icif17yks3nwcxxzqxjjw556vpig"; +revision = "3"; +editedCabalFile = "0mm1mmagx6q8g6dxk1cagqka38z6393ihp0lvf6095prlvidasqs"; libraryHaskellDepends = [ base circle-packing @@ -25549,8 +25639,8 @@ mkDerivation { pname = "diagrams-lib"; version = "1.4.2.3"; sha256 = "25a7adccbe3175cdb081a3824413ba431e561026c6ddd9a647cd133e4bfcbe9c"; -revision = "1"; -editedCabalFile = "0zsigisgn6sjpfy2hm31zddnsyqm2a046nxb5drjqm7r0aa3vjff"; +revision = "2"; +editedCabalFile = "0gn1lpsq1v9qpyhpizyknn3sfixg1b64s0dsl1jf25lz4kcrpbs7"; libraryHaskellDepends = [ active adjunctions @@ -25616,8 +25706,8 @@ mkDerivation { pname = "diagrams-postscript"; version = "1.4.1"; sha256 = "a758191d99c30bd663dc0df2dedef13cd735a33c143e77906aa88baceb282c9c"; -revision = "1"; -editedCabalFile = "0z0rh7lwyr3vx6llq6q9s5f1vzqk4zxpcg5ibfn5jdp274kfd7r1"; +revision = "2"; +editedCabalFile = "0s6z3kaj1dm5kifaydnd2nx97g5qbc6jjqy3wn4dwa9rm7w49753"; libraryHaskellDepends = [ base containers @@ -25701,8 +25791,8 @@ mkDerivation { pname = "diagrams-solve"; version = "0.1.1"; sha256 = "a41f5f410b10f162b1e5c07bd4ca3305544870ff1314ae4f5824c83a31644f9d"; -revision = "3"; -editedCabalFile = "13vfs5k09c16q3dvqzgfca1kd93pgc4ll8mfl3wracanm5mn5rx7"; +revision = "4"; +editedCabalFile = "1yjacw17ga4rh6iw70vclk03qm5xjw4y17c7m43gjw8h3cfaq15d"; libraryHaskellDepends = [ base ]; @@ -25782,8 +25872,8 @@ mkDerivation { pname = "dictionary-sharing"; version = "0.1.0.0"; sha256 = "8c3b5184d5d6056433d51a49c5402e4ab7b0260073d5342685b8e141d2be5a01"; -revision = "2"; -editedCabalFile = "0pxbqck3fkfqrg51fkkplcmqxn9vllkc5ff83l282gandqv4glvi"; +revision = "3"; +editedCabalFile = "1mn7jcc7h3b8f1pn9zigqp6mc2n0qb66lms5qnrx4zswdv5w9439"; libraryHaskellDepends = [ base containers @@ -25859,6 +25949,8 @@ mkDerivation { pname = "dimensional"; version = "1.1"; sha256 = "3a25889c1c67966a2739a9c1ccd040278c89e10823a1b2463fbf571b74075e16"; +revision = "2"; +editedCabalFile = "0922kd3svn96c1qg2lx3ya0xlrbll51csc18cnma0f8j899r4xgn"; libraryHaskellDepends = [ base deepseq @@ -25981,6 +26073,8 @@ mkDerivation { pname = "discrimination"; version = "0.3"; sha256 = "d6d4b285783e66446a8f798b3a440b1020bdc681285b05794d3ec84d96dc4ca3"; +revision = "1"; +editedCabalFile = "1p39vcdmv9k9wxlkh49w1dr1isvn2hvhjjbs95qwljpxca74i23g"; libraryHaskellDepends = [ array base @@ -26190,6 +26284,8 @@ mkDerivation { pname = "dlist"; version = "0.8.0.5"; sha256 = "98a88aa839b40d4aee8b08880030d282d627b63de311f5414dca6e831a951b43"; +revision = "1"; +editedCabalFile = "1jh8zw1vpx0ld4gmc4l0pqpgbl9frpgbyw9kvsr56bnz0v2rgqpx"; libraryHaskellDepends = [ base deepseq @@ -26241,8 +26337,8 @@ mkDerivation { pname = "dlist-nonempty"; version = "0.1.1"; sha256 = "40e8a64c979ca07b4f67a38878d1d13c1127fe2d1ad6b2b4daff0ee2dbd54b33"; -revision = "4"; -editedCabalFile = "10kkj4sf1bn87z6744p9gn6mkciqri2d3l9vmg9ylpi8g7priil2"; +revision = "5"; +editedCabalFile = "01x05d62y8f3kippxawra3fdr7jdms3zcgd7c4n8wf39np9wy556"; libraryHaskellDepends = [ base base-compat @@ -26282,6 +26378,8 @@ mkDerivation { pname = "dns"; version = "3.0.4"; sha256 = "7b3433b536b7d225914d7b8495c7af1927d9554538d7d86c2644ccf9d3fa44a9"; +revision = "1"; +editedCabalFile = "15jafrm919w4p23m7kpmyc1yvzpy88jcccycc00dza69d119zjdr"; libraryHaskellDepends = [ async attoparsec @@ -27345,8 +27443,8 @@ mkDerivation { pname = "either"; version = "5.0.1"; sha256 = "6cb6eb3f60223f5ffedfcd749589e870a81d272e130cafd1d17fb6d3a8939018"; -revision = "1"; -editedCabalFile = "1kf0dy6nki64kkmjw8214jz3n086g1pghfm26f012b6qv0iakzca"; +revision = "2"; +editedCabalFile = "0859h2dc77fq0f14jh11h4i89hrg3iqvzk0yrk78516k6m7n96zc"; libraryHaskellDepends = [ base bifunctors @@ -27406,8 +27504,8 @@ mkDerivation { pname = "ekg"; version = "0.4.0.15"; sha256 = "482ae3be495cfe4f03332ad1c79ce8b5ad4f9c8eec824980c664808ae32c6dcc"; -revision = "4"; -editedCabalFile = "17b68p16hsh79jaya1jfncml5cjf8y1jbr8827r42acnf9jk4s23"; +revision = "6"; +editedCabalFile = "012y235n8k7hhx651l01xf88vgr2wskapbsn83w18ls1h1njqnzk"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson @@ -27444,10 +27542,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "ekg-core"; -version = "0.1.1.4"; -sha256 = "66d89acca05c1c91dc57a9c4b3f62d25ccd0c04bb2bfd46d5947f9b8cd8ee937"; -revision = "3"; -editedCabalFile = "1s3545x9w01rrwzchb4f91ck0n6dc7gf0zwkryqx1b2c95ni5qa8"; +version = "0.1.1.6"; +sha256 = "66a8dd79ad27659052168f08dd41fabb8593e364de00fb857ef5cc943acd5742"; libraryHaskellDepends = [ base containers @@ -27477,8 +27573,8 @@ mkDerivation { pname = "ekg-json"; version = "0.1.0.6"; sha256 = "1e6a80aa0a28bbf41c9c6364cbb5731160d14fa54145f27a82d0b3467a04dd47"; -revision = "3"; -editedCabalFile = "0d029nmwpln8iqqj1l5pz41l4gpbgk6n9gmlwnhnq2cm7ih6gzad"; +revision = "4"; +editedCabalFile = "16sn4nbqm0rxkf0swi6r2jn6z9x92qmcg9xlx258d98kqb5fkwjg"; libraryHaskellDepends = [ aeson base @@ -27510,8 +27606,8 @@ mkDerivation { pname = "ekg-statsd"; version = "0.2.4.0"; sha256 = "5e74bf63a1cd347c939d4eb7beb9181556b7bd033a60e5f6f4df0505e98a7adb"; -revision = "1"; -editedCabalFile = "1iayg5ac94rgdz7shvvz7ff4saffww8dc6fy82hi0cpyk7kr2xy9"; +revision = "3"; +editedCabalFile = "0va7fliya7g546f5qbc42bl7dyh74al38sspd2smjyl7a9d5mmlk"; libraryHaskellDepends = [ base bytestring @@ -27553,8 +27649,8 @@ mkDerivation { pname = "ekg-wai"; version = "0.1.0.3"; sha256 = "bfd35917b663da0c1354339dd30837eee6ddf0d42cf57442fd916a42c977a2e9"; -revision = "1"; -editedCabalFile = "0crcpwrnh1pi5n4dlp9cwminj1gls9ywm4fgvisafh480097b100"; +revision = "2"; +editedCabalFile = "17kca2wzlcv8nxyq096fv57jfklhz4ibnvf5nqqdszczb03j3dnn"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson @@ -27742,8 +27838,8 @@ license = "unknown"; mkDerivation { pname = "email-validate"; -version = "2.3.2.8"; -sha256 = "d71bce8bc7f1842cfdc4bd99956f4622c0a6b7cfcdf096ba5588c50a47374ed3"; +version = "2.3.2.9"; +sha256 = "aeac6eea61192683bbde6bb8bdcf2150a03f79fa2bf4a1deb5e838a0011a4e8b"; libraryHaskellDepends = [ attoparsec base @@ -27921,8 +28017,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "entropy"; -version = "0.4.1.3"; -sha256 = "510aebda134d1c835250bce8e5e7008fe54a929b05ced6a45121be488935a91c"; +version = "0.4.1.4"; +sha256 = "2e3f6a65c8fde3551a8fb03b0a519b718762fc3278b1a5750f96d399e821eeb9"; +revision = "1"; +editedCabalFile = "0h9wvpq4hw5ipn15ni0qdsrssjil0m59wm4l5hl607l3w2lif864"; setupHaskellDepends = [ base Cabal @@ -28064,8 +28162,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "envy"; -version = "1.5.0.0"; -sha256 = "cdc099b3ae0c61007d07642c8e4811d29dfe3977b49595e21e03a1e29f741fbf"; +version = "1.5.1.0"; +sha256 = "2dcacbb9901603f44e8e933849b532ba7b56ee2d7feff3980f9c7b556c4041e4"; libraryHaskellDepends = [ base bytestring @@ -28438,8 +28536,8 @@ mkDerivation { pname = "ether"; version = "0.5.1.0"; sha256 = "36980c9598c5e8e804695da3b966416a2221296022b39be437ec35263ea10085"; -revision = "1"; -editedCabalFile = "01q86w79xswdkq08m375xwfqjgix6bzbc4lpxz4phqvzf38lc8i5"; +revision = "2"; +editedCabalFile = "0ax7jq2gpb12zh4v2gcpqpckznpbkc8b743k94fljvks0yq3kl0k"; libraryHaskellDepends = [ base exceptions @@ -28609,6 +28707,8 @@ mkDerivation { pname = "eventful-sql-common"; version = "0.2.0"; sha256 = "a46ea18cbbb5bd04b3a6846273e8161b7e4208660d0abf5a401192b07636aebc"; +revision = "1"; +editedCabalFile = "1w2qq0p4304zsjkwmqx79azpq5v0ajz5grg740vwkca8qvdvdq91"; libraryHaskellDepends = [ aeson base @@ -29335,8 +29435,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "extra"; -version = "1.6.13"; -sha256 = "a0e052f13e6efe1da9808fbfeab9e00a7d6e8cc51304e7bcd227390744788549"; +version = "1.6.14"; +sha256 = "a60641530d96653ecc365aa042f4061892154995915d91f432ea5a2e3aaf129c"; libraryHaskellDepends = [ base clock @@ -29872,10 +29972,10 @@ license = stdenv.lib.licenses.gpl3; mkDerivation { pname = "feed"; -version = "1.0.0.0"; -sha256 = "9359a12d3da138ba50fecfc31eed7f92438a6417e9fc3aa17b95a014fa792f17"; -revision = "4"; -editedCabalFile = "0baavcavm3ywykcr9cm07aqr7sna98jba2n68lyn3kany8ri214d"; +version = "1.0.1.0"; +sha256 = "87bd055b13c43f54e997f716a33d647c6bc1cdb78337c840d144c0b5fdccd31c"; +revision = "1"; +editedCabalFile = "10xjd3syr70g3blnjy7xvd6s21y68vxsi69f6bmizpsylbfb0245"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -30101,8 +30201,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "filecache"; -version = "0.4.0"; -sha256 = "cd088db62e75138e877a88b31cf44dfa8773dc30c4a431e6b0663b6e3a764e74"; +version = "0.4.1"; +sha256 = "c502a8b43cf08694c8d2657dc282306d811cdd91f284614a6a9945267c93cb9d"; libraryHaskellDepends = [ base containers @@ -30376,8 +30476,8 @@ license = stdenv.lib.licenses.gpl3; mkDerivation { pname = "fingertree"; -version = "0.1.4.1"; -sha256 = "9778dc162963c376f02239183e782673729d01a2e1e1dbf81924d80bf6f74ea4"; +version = "0.1.4.2"; +sha256 = "95a948341570bad5a9b2468c388c0eb2c20c57e10dd8fbfc994c7b8764b36a7f"; libraryHaskellDepends = [ base ]; @@ -30555,8 +30655,8 @@ mkDerivation { pname = "flac"; version = "0.1.2"; sha256 = "5692b3dfc561cbeed25b1cf9280705f58eadd8c400aa2e6a725fd5562042ac29"; -revision = "4"; -editedCabalFile = "0bmhd56fg4idz62maig3kykk7dyqy9dpm27fdljqg8jccl0vbwbm"; +revision = "5"; +editedCabalFile = "0rwwq8qrxd497rd5m0kidz4v69frj72ds7a6zrdqigj5f5471rhd"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -30876,6 +30976,46 @@ homepage = "https://github.com/nikita-volkov/focus"; description = "A general abstraction for manipulating elements of container data structures"; license = stdenv.lib.licenses.mit; +}) {}; +"focuslist" = callPackage +({ + mkDerivation +, base +, Cabal +, cabal-doctest +, containers +, lens +, mono-traversable +, QuickCheck +, stdenv +}: +mkDerivation { + +pname = "focuslist"; +version = "0.1.0.1"; +sha256 = "fdee9ae7a68f139f9b4b88df27e4f373815293da93a1df91e5c2f3dc558f05e3"; +revision = "2"; +editedCabalFile = "12x38kxhcjdqfwl8y8zdrwcpv6jdm7jaqc48ww3hg6fpv8rvvd49"; +isLibrary = true; +isExecutable = true; +setupHaskellDepends = [ +base +Cabal +cabal-doctest +]; +libraryHaskellDepends = [ +base +containers +lens +mono-traversable +QuickCheck +]; +doHaddock = false; +doCheck = false; +homepage = "https://github.com/cdepillabout/focuslist"; +description = "Lists with a focused element"; +license = stdenv.lib.licenses.bsd3; + }) {}; "fold-debounce" = callPackage ({ @@ -30989,6 +31129,8 @@ mkDerivation { pname = "foldl"; version = "1.4.5"; sha256 = "0ba0bd8a8b4273feef61b66b6e251e70f70537c113f8b7f0e3aeab77d8af12a7"; +revision = "3"; +editedCabalFile = "0ci6wq1lqmz0i5rlb4my21ic6ziq87kg35mkp3f9la9y32zbq600"; libraryHaskellDepends = [ base bytestring @@ -31728,8 +31870,8 @@ mkDerivation { pname = "functor-classes-compat"; version = "1"; sha256 = "ef11f94f44a74d6657ee61dcd2cfbc6d0889d233a2fb4caae6a29d9c59a1366f"; -revision = "3"; -editedCabalFile = "1jx552ysdnxvd8wdvsf4bgxlsgldpb7a8zi54abyjmxv6mkp98ys"; +revision = "4"; +editedCabalFile = "1531cmcfgcgry254dn5mx7h5l6nd4afxz6lhlcr0lbbm4y1v59mk"; libraryHaskellDepends = [ base containers @@ -32879,8 +33021,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "genvalidity-vector"; -version = "0.2.0.2"; -sha256 = "11d2988f3256eeedef0d5be4e5e9c7883fd4f86fde08eda6e2559ab86f673e38"; +version = "0.2.0.3"; +sha256 = "b3c42019fea54c0da0b0947b01cad510679b3b6c2dc55a43326806f9a02e3c98"; libraryHaskellDepends = [ base genvalidity @@ -32909,6 +33051,8 @@ mkDerivation { pname = "geodetics"; version = "0.0.6"; sha256 = "e21dbbd01fac330a542fba24d6dedc6c3b46a4bf43e7fa6181417e6daab9e542"; +revision = "1"; +editedCabalFile = "0ns8368ylapmgk7h9l1ppvrnrqd9jgrm304icf6v47wdan1r82xr"; enableSeparateDataOutput = true; libraryHaskellDepends = [ array @@ -32935,8 +33079,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "getopt-generics"; -version = "0.13.0.2"; -sha256 = "e604aa25d7843a175ec8803e2d60eb6c959fbb4cc7fb0d8321f315ff8671600c"; +version = "0.13.0.3"; +sha256 = "ab05824897afa59304fd653685b5d9580cc91b1d6783d30234a03dbf9dee0288"; libraryHaskellDepends = [ base base-compat @@ -33098,8 +33242,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "ghc-prof"; -version = "1.4.1.4"; -sha256 = "b01a514fe0147ca4b562335813a9742ac90334809b145145ba31eb9fbaf834f3"; +version = "1.4.1.5"; +sha256 = "e42d1acd9947c1396adcf1ae3a0627144884af5cf13176fb09cce0e9bcfbfe32"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -33128,8 +33272,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "ghc-syntax-highlighter"; -version = "0.0.2.0"; -sha256 = "cf335c2d5c789dd6dac948edba4cef89b3b8595b5150c21ee735c82b97868dbd"; +version = "0.0.3.0"; +sha256 = "a137f484740f4eee967fbc8d8366e053e52e073b948ffb3001b4e1227adeec1c"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -33779,8 +33923,8 @@ license = stdenv.lib.licenses.lgpl21; mkDerivation { pname = "gi-gtk"; -version = "3.0.25"; -sha256 = "a12f75c45ac2349d5b2c31e6039ff57ff2b8fb9e4a1c2f6b7b4a3e5510b4dd50"; +version = "3.0.26"; +sha256 = "ceaae0a48c39cd30c3baf9f71136bfed1f85fbe284ee0c3dfe13d42e99741aac"; setupHaskellDepends = [ base Cabal @@ -34024,6 +34168,65 @@ description = "Pango bindings"; license = stdenv.lib.licenses.lgpl21; }) {inherit (pkgs) cairo; inherit (pkgs) pango;}; +"gi-vte" = callPackage +({ + mkDerivation +, base +, bytestring +, Cabal +, containers +, gi-atk +, gi-gdk +, gi-gio +, gi-glib +, gi-gobject +, gi-gtk +, gi-pango +, haskell-gi +, haskell-gi-base +, haskell-gi-overloading +, stdenv +, text +, transformers +, vte +}: +mkDerivation { + +pname = "gi-vte"; +version = "2.91.19"; +sha256 = "9eb476c66295f9786df59bcf429d16a94462846dd3486a048a07ca93658bd0c2"; +setupHaskellDepends = [ +base +Cabal +haskell-gi +]; +libraryHaskellDepends = [ +base +bytestring +containers +gi-atk +gi-gdk +gi-gio +gi-glib +gi-gobject +gi-gtk +gi-pango +haskell-gi +haskell-gi-base +haskell-gi-overloading +text +transformers +]; +libraryPkgconfigDepends = [ +vte +]; +doHaddock = false; +doCheck = false; +homepage = "https://github.com/haskell-gi/haskell-gi"; +description = "Vte bindings"; +license = stdenv.lib.licenses.lgpl21; + +}) {inherit (pkgs) vte;}; "gio" = callPackage ({ mkDerivation @@ -34184,6 +34387,37 @@ homepage = "https://github.com/christian-marie/git-vogue"; description = "A framework for pre-commit checks"; license = stdenv.lib.licenses.bsd3; +}) {}; +"githash" = callPackage +({ + mkDerivation +, base +, bytestring +, directory +, filepath +, process +, stdenv +, template-haskell +}: +mkDerivation { + +pname = "githash"; +version = "0.1.3.0"; +sha256 = "e75aca04c7829bb1a0ba2265d540d14e6ed9a92c5a78774468b38095252dd766"; +libraryHaskellDepends = [ +base +bytestring +directory +filepath +process +template-haskell +]; +doHaddock = false; +doCheck = false; +homepage = "https://github.com/snoyberg/githash#readme"; +description = "Compile git revision info into Haskell projects"; +license = stdenv.lib.licenses.bsd3; + }) {}; "github" = callPackage ({ @@ -34287,8 +34521,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "github-release"; -version = "1.2.2"; -sha256 = "0684e7279625b654221e61ec0a95128e0aec0be810181699e1ca46902e92d356"; +version = "1.2.3"; +sha256 = "1e50df80c6cd2e1b4e007648c5e0833489cc57d41daf0262e65fd4e59f404b92"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -34442,8 +34676,8 @@ mkDerivation { pname = "gl"; version = "0.8.0"; sha256 = "aa4d2838157c86da920bda651458a4266fccc7c291ea93a69558ab02540e1439"; -revision = "2"; -editedCabalFile = "0zbpf559ajlcwnylpbm6dbi4m3g3s08fciqfp5am3i2vrmw0wpi9"; +revision = "3"; +editedCabalFile = "0q8d4237ds78y4p35xl2arlmmpgs2ag7krw9chby6q9dcs00zxrl"; setupHaskellDepends = [ base Cabal @@ -34838,8 +35072,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "google-oauth2-jwt"; -version = "0.3.0"; -sha256 = "72fd0f2fa82b734bc099c108ab0f168b1faaf6fb855d4dfb1df6348167ab27d6"; +version = "0.3.1"; +sha256 = "71d7704aad64fbd2398d8b0dcb6f39311a8e710385fc80ee2b665bd6b43b2f88"; libraryHaskellDepends = [ base base64-bytestring @@ -34925,8 +35159,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "graph-wrapper"; -version = "0.2.5.1"; -sha256 = "8361853fca2d2251bd233e18393053dd391d21ca6f210b2bc861b0e0f4c2e113"; +version = "0.2.5.2"; +sha256 = "98a42ef1eee9a5012b0bb2a91f645dd8487df6cfdcfcab5e387a8abf42768dcd"; libraryHaskellDepends = [ array base @@ -35095,6 +35329,7 @@ license = "unknown"; mkDerivation , aeson , base +, exceptions , greskell-core , semigroups , stdenv @@ -35106,11 +35341,12 @@ license = "unknown"; mkDerivation { pname = "greskell"; -version = "0.2.1.1"; -sha256 = "9a05cff3285cc290c8283219d3e63c6d6bed41811845f1c3d231ed0734d3f45a"; +version = "0.2.2.0"; +sha256 = "7f594dd299c20ad25cc2898383ec86d03170667c010ac1a7906d80ec1d8e44cd"; libraryHaskellDepends = [ aeson base +exceptions greskell-core semigroups text @@ -35937,8 +36173,8 @@ mkDerivation { pname = "hackage-security"; version = "0.5.3.0"; sha256 = "db986e17e9265aa9e40901690815b890b97d53159eb24d0a6cafaa7c18577c21"; -revision = "3"; -editedCabalFile = "07h13j203wafvimfhswpjl2a43iaavy9579hm16z5m565m7f8hwy"; +revision = "6"; +editedCabalFile = "1xs2nkzlvkdz8g27yzfxbjdbdadfmgiydnlpn5dm77cg18r495ay"; libraryHaskellDepends = [ base base16-bytestring @@ -36344,13 +36580,14 @@ license = stdenv.lib.licenses.bsd3; , stm , time , transformers +, typed-process , yaml }: mkDerivation { pname = "hapistrano"; -version = "0.3.7.0"; -sha256 = "8180c4819e82c495edacfe006a760b53f1e348e41b3eefc33247eec5dbf0a199"; +version = "0.3.8.0"; +sha256 = "a6c8178f5c9c3f7ca6620f9a744f659296660eeddad3a985a01acdd31dd66ace"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -36363,8 +36600,10 @@ gitrev mtl path process +stm time transformers +typed-process ]; executableHaskellDepends = [ aeson @@ -36427,8 +36666,10 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "happstack-server"; -version = "7.5.1.1"; -sha256 = "614a65dd721bfa74ff4e0090e70c4b5c7dfb1fdb6485218b4ce1c5d50509fd61"; +version = "7.5.1.3"; +sha256 = "93d237eff4d01e0de97329366662a53868fd7a043612fe36e4a3492b5caefd29"; +revision = "1"; +editedCabalFile = "15ira63nilqyq9ggl2jy5ip26aprw79sv5k1hp9n4wp9byhzzyjw"; libraryHaskellDepends = [ base base64-bytestring @@ -36522,7 +36763,6 @@ license = stdenv.lib.licenses.bsd2; , containers , data-binary-ieee754 , data-default -, hex , network , stdenv , text @@ -36531,10 +36771,10 @@ license = stdenv.lib.licenses.bsd2; mkDerivation { pname = "hasbolt"; -version = "0.1.3.0"; -sha256 = "fd6fc49f57e8c03087103f733c130739a046398b5118b078aad2def31059665d"; -revision = "3"; -editedCabalFile = "0j9njdb6x5ibx113bprsq2i0jmrigdli23pjabxam9q07979c9ac"; +version = "0.1.3.2"; +sha256 = "31acb64497ce06eecfc2c54297b561a373d8584142a8d9b8f67cbabc701c5893"; +revision = "4"; +editedCabalFile = "0h38mjkr3cqhsr9hwf2wj27mknnxyb2y3swzp18s7q4vmrb1ijyz"; libraryHaskellDepends = [ base binary @@ -36543,7 +36783,6 @@ connection containers data-binary-ieee754 data-default -hex network text transformers @@ -36697,6 +36936,8 @@ mkDerivation { pname = "hashtables"; version = "1.2.3.1"; sha256 = "8fd1c7c77c267eae6af01f1d9ca427754fb092cfffc8041cd50764a9144b3cbe"; +revision = "1"; +editedCabalFile = "1yyqnqn85mlw03f2bpvwa1w9gigswk9n30i918myqyxwr595l7rr"; libraryHaskellDepends = [ base ghc-prim @@ -36782,6 +37023,8 @@ mkDerivation { pname = "haskell-gi"; version = "0.21.5"; sha256 = "12d116c6effae4da3f97afaad46faab6766f4a58be2c8fb434f8e0feea4a71e7"; +revision = "1"; +editedCabalFile = "144knmzybslqz8w9cwgl5s4sk1crs9qhynwiqv68wdq67q0s4k80"; libraryHaskellDepends = [ attoparsec base @@ -37145,8 +37388,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "haskell-src-exts-util"; -version = "0.2.3"; -sha256 = "e833ef33423645fee4a300ff4e1354618a0d115a954cd62e72096175513803a0"; +version = "0.2.4"; +sha256 = "beb8af3a29322c72a9c9ac9988953c5aacc8f3b882780dd4f03f621d15126ef5"; libraryHaskellDepends = [ base containers @@ -38272,8 +38515,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "hedis"; -version = "0.10.4"; -sha256 = "ddf565696a7593a54154d9e3058631be3fd3355fcbbba4d3e750d6a91e374af7"; +version = "0.10.10"; +sha256 = "1ad2452dc78065035d58f124547caa8ae927c9a470dbe85988e2ed1b19837241"; +revision = "1"; +editedCabalFile = "0fcpf0jqga8wh0ikbpkma8sw7f5376wbc9w9rsiqp51q8f23x04h"; libraryHaskellDepends = [ async base @@ -38372,8 +38617,8 @@ license = stdenv.lib.licenses.publicDomain; mkDerivation { pname = "heterocephalus"; -version = "1.0.5.2"; -sha256 = "50b829508715ba246f095accd1b49f7c5f67380948d349df355bac39f4155923"; +version = "1.0.5.3"; +sha256 = "4723e03896cc91d524da36fe1b8c5b174b81120c323a3fad692f9ada4bd8794f"; libraryHaskellDepends = [ base blaze-html @@ -38587,6 +38832,33 @@ platforms = [ ]; }) {inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;}; +"hgmp" = callPackage +({ + mkDerivation +, base +, ghc-prim +, integer-gmp +, stdenv +}: +mkDerivation { + +pname = "hgmp"; +version = "0.1.1"; +sha256 = "b905720ad455ef54a167ed6c2a44dfb01f8e8f8efc6fe4f0a2a21ff22f5b3ac2"; +revision = "3"; +editedCabalFile = "0z2xbqzyrgm9apy3xl353wgwhbnc3hdb1giw2j6fyvv705fmpb62"; +libraryHaskellDepends = [ +base +ghc-prim +integer-gmp +]; +doHaddock = false; +doCheck = false; +homepage = "https://code.mathr.co.uk/hgmp"; +description = "Haskell interface to GMP"; +license = stdenv.lib.licenses.bsd3; + +}) {}; "hidapi" = callPackage ({ mkDerivation @@ -38629,8 +38901,8 @@ mkDerivation { pname = "hidden-char"; version = "0.1.0.2"; sha256 = "ea909372a7cc06cda7ee8e9c1a6a5c16be19fef256ad4bd2c0b39e61d940f498"; -revision = "2"; -editedCabalFile = "1d0k297hxff31k0x5xbli6l7c151d2y9wq4w0x0prgagjc0l7z5n"; +revision = "3"; +editedCabalFile = "0f6qghr4i3ar993pjlswdd2rl671lrnxj8740i2yhn89z410vzsa"; libraryHaskellDepends = [ base ]; @@ -39149,6 +39421,8 @@ mkDerivation { pname = "hledger-interest"; version = "1.5.3"; sha256 = "7a7f5d437c98e42ba1f1529f2645e5df88d18962ae28b71b8c07e428fe08c1b9"; +revision = "1"; +editedCabalFile = "1myqv7hci32hvm98d4fn2zqdvkxsdx1g821n1fwr6814yn89kwjj"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -39162,7 +39436,7 @@ time ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/peti/hledger-interest"; +homepage = "https://github.com/peti/hledger-interest"; description = "computes interest for a given account"; license = stdenv.lib.licenses.bsd3; @@ -39210,8 +39484,8 @@ mkDerivation { pname = "hledger-lib"; version = "1.10"; sha256 = "e18aaf23705f46c432519113148229ff78ddae3dcf41ef784e032bf5cc1943ce"; -revision = "1"; -editedCabalFile = "1b6hj4w1qfh1q8c3ikx5sn8z70cfdmqi4iy3a3l64q4x1j4jgyic"; +revision = "2"; +editedCabalFile = "071bnfgdv665llvggpqbg44kc141jz4ni0j6a1miyyw7wd2dvkix"; libraryHaskellDepends = [ ansi-terminal array @@ -39291,8 +39565,8 @@ mkDerivation { pname = "hledger-ui"; version = "1.10.1"; sha256 = "c7d41f9d2c9f486ab25a9cdb4d89759eae3974f8c4991bf46e3e5ea9bc8690c0"; -revision = "1"; -editedCabalFile = "1xvppxdkrk64mpqb64r016xshxqq25zzflbysmldgiqm1ibngy1g"; +revision = "2"; +editedCabalFile = "0igkrj44w3rvadgb7kbi1wwlljyrs4y6awk0mhic4lvnk1slwk6m"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -39469,8 +39743,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "hlibsass"; -version = "0.1.7.0"; -sha256 = "62a75c444d8771303c6712e6fd3b3b5fd988773ec61ff06b4ed7e9d92c1c9f6d"; +version = "0.1.8.0"; +sha256 = "26de9a1275e0c1cae5afbe79ad3aa1a857c3bfc0b6dcc97698e9d02d41de4feb"; configureFlags = [ "-fexternalLibsass" ]; @@ -39522,8 +39796,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "hlint"; -version = "2.1.10"; -sha256 = "1cc4d90ed2b696563ce1614c2a17070be2cd808c7affa782359995f352155aa5"; +version = "2.1.11"; +sha256 = "4b590d27ec6da4670deea9de4f52c83048688073b3e6389a74da31d58e30665b"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -39783,8 +40057,8 @@ license = stdenv.lib.licenses.gpl3; mkDerivation { pname = "hmatrix-vector-sized"; -version = "0.1.1.0"; -sha256 = "8b4edc591aa301ee2c4d2f5894ad690db8d88c9d48754f6d13c30d3eacc03b1d"; +version = "0.1.1.2"; +sha256 = "86981a7f412b68e42abff0d929db8ed2eab264d1bde3e4e75fa789066a0f437e"; libraryHaskellDepends = [ base hmatrix @@ -40065,8 +40339,10 @@ license = stdenv.lib.licenses.agpl3; mkDerivation { pname = "hopenssl"; -version = "2.2.2"; -sha256 = "54da2eb71d07efd9d15cc19bd9a9feab4ee39f040db38e9544c85b4d624da84c"; +version = "2.2.4"; +sha256 = "9df46c328fc4c1d1566e2d1539770c9fe9d0422e09ee254721b35ee7d48a7671"; +revision = "1"; +editedCabalFile = "14bs0wjrqnnn1v8c4yznfzggvmgypm2lssgl0cr498kmp54if0lf"; libraryHaskellDepends = [ base bytestring @@ -40076,7 +40352,7 @@ openssl ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/peti/hopenssl"; +homepage = "https://github.com/peti/hopenssl"; description = "FFI Bindings to OpenSSL's EVP Digest Interface"; license = stdenv.lib.licenses.bsd3; @@ -40472,6 +40748,7 @@ license = stdenv.lib.licenses.bsd3; , hmatrix , hmatrix-gsl , hmatrix-special +, hquantlib-time , mersenne-random-pure64 , parallel , random @@ -40484,10 +40761,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "hquantlib"; -version = "0.0.4.0"; -sha256 = "b7b2b9ce5e8113dd2d54a1dfce34b661620bd5e0dd43516604395276d7c44474"; -revision = "2"; -editedCabalFile = "1wx32kkv1as3rras5b1y3v77abx0sqsam6ssa5s7vm83pncx38y4"; +version = "0.0.5.0"; +sha256 = "868347c32e17d6f9a2aa289412453b0ad9cd71144ddf2dfb6871b599900f23fe"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -40496,6 +40771,7 @@ containers hmatrix hmatrix-gsl hmatrix-special +hquantlib-time mersenne-random-pure64 parallel random @@ -40517,6 +40793,29 @@ homepage = "http://github.com/paulrzcz/hquantlib.git"; description = "HQuantLib is a port of essencial parts of QuantLib to Haskell"; license = "LGPL"; +}) {}; +"hquantlib-time" = callPackage +({ + mkDerivation +, base +, stdenv +, time +}: +mkDerivation { + +pname = "hquantlib-time"; +version = "0.0.4.1"; +sha256 = "ac9ced19f72197fc1bc8b9528c8ae9cf1e8887f2d2ed6519a480b048423d523c"; +libraryHaskellDepends = [ +base +time +]; +doHaddock = false; +doCheck = false; +homepage = "http://github.com/paulrzcz/hquantlib-time.git"; +description = "HQuantLib Time is a business calendar functions extracted from HQuantLib"; +license = "LGPL"; + }) {}; "hreader" = callPackage ({ @@ -40788,6 +41087,8 @@ mkDerivation { pname = "hsdns"; version = "1.7.1"; sha256 = "4fcd00e85cde989652ab5c6b179610c9514180a00cd7b161ea33ebfec3b8a044"; +revision = "1"; +editedCabalFile = "0w4hrmj7ph5dgarl82xpa0g77ncjdqk0wc9wp771pry98xxihzl8"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -40946,6 +41247,8 @@ mkDerivation { pname = "hsini"; version = "0.5.1.2"; sha256 = "eaa6ae68c6271d5c3187054e702719b3ee7916524ffda27bb328cc9aad9ed8e4"; +revision = "1"; +editedCabalFile = "0wkvajjgs64l4wlw8s6sn3pbwx3ni41p1260chp67a16innr1qp6"; libraryHaskellDepends = [ base bytestring @@ -41010,6 +41313,8 @@ mkDerivation { pname = "hslogger"; version = "1.2.12"; sha256 = "f97a4c89d0921f237999de5d44950127dbe8baa177960ccccbfb79cccfd46c7a"; +revision = "1"; +editedCabalFile = "1rk2lrg3959nbgbyd1aacvwbv865lsrnczqdmj4ivkfn0c8nkidh"; libraryHaskellDepends = [ base containers @@ -41661,8 +41966,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "hspec-wai"; -version = "0.9.0"; -sha256 = "c8fe9ed0a1b77d6ad09b3d9c34e4dc65a2e5f1f0bbc6f7b8e2106d3d7556dfba"; +version = "0.9.2"; +sha256 = "055e414bd6531d3454496f9c4bfa1164b861aa9a9102867d7ffeef8d3a92283f"; libraryHaskellDepends = [ base base-compat @@ -41699,8 +42004,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "hspec-wai-json"; -version = "0.9.0"; -sha256 = "a1c5401fa7fc7ffc46950274702a0ef30045568c2d2f5bc528cd6bf26ae28085"; +version = "0.9.2"; +sha256 = "82e324482e04662121a14fc75232e7359d6d1454623c37253b6550a8ec6ccadc"; libraryHaskellDepends = [ aeson aeson-qq @@ -41822,8 +42127,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "hsyslog-udp"; -version = "0.2.3"; -sha256 = "f03fc4e26fd19f74834bff62891adeee49909326c2a7b9c93a70a9d370f4b6be"; +version = "0.2.4"; +sha256 = "0615fd8f2c53db9112f1aeb3899d227b17af035c8db7899cb289c69021eb50f5"; libraryHaskellDepends = [ base bytestring @@ -42134,8 +42439,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "http-client"; -version = "0.5.13.1"; -sha256 = "e121b5c676aec29f2a3b92dcbbb8b3f6acfad4ac5985141f35e5b739f75bfc6b"; +version = "0.5.14"; +sha256 = "8e50409704021c51a8955b2d03bfec900ebc3e11fbaebf973f2e654d7bde3647"; +revision = "1"; +editedCabalFile = "0xw5ac4cvcd4hcwl7j12adi7sgffjryqhk0x992k3qs1cxyv5028"; libraryHaskellDepends = [ array base @@ -42181,6 +42488,8 @@ mkDerivation { pname = "http-client-openssl"; version = "0.2.2.0"; sha256 = "96410d977b70f25208d74ffc31ee00ceab4aa970347ef4f8d5757246c61210aa"; +revision = "1"; +editedCabalFile = "0l2a036ypx1kyfr99fggnrb1kv6x8mp53pxzklka2ccggvl6khx3"; libraryHaskellDepends = [ base HsOpenSSL @@ -42220,6 +42529,8 @@ mkDerivation { pname = "http-client-tls"; version = "0.3.5.3"; sha256 = "471abf8f29a909f40b21eab26a410c0e120ae12ce337512a61dae9f52ebb4362"; +revision = "1"; +editedCabalFile = "0llb5k8mz1h6zyv1nd433wwgyjsw7n8x0b1fwib312iiws43sz69"; libraryHaskellDepends = [ base bytestring @@ -42409,6 +42720,8 @@ mkDerivation { pname = "http-media"; version = "0.7.1.3"; sha256 = "394ffcfb4f655721d5965870bf9861c324c14d40ed4dc173e926235fe0fe124f"; +revision = "1"; +editedCabalFile = "19py5pspx80gg679p9dzqr3iidflppxc1x4vkldamjkidyi406j8"; libraryHaskellDepends = [ base bytestring @@ -42641,14 +42954,14 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "human-readable-duration"; -version = "0.2.0.3"; -sha256 = "93f3a91a2994588728ae757dcca5104e18a570b3591773aa7f03c524c97599da"; +version = "0.2.1.2"; +sha256 = "6552def225a0bde18dd4d416e02dc9a83472924550834529a349dd9286785690"; libraryHaskellDepends = [ base ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/yogsototh/human-readable-duration#readme"; +homepage = "https://gitlab.esy.fun/yogsototh/human-readable-duration#readme"; description = "Provide duration helper"; license = stdenv.lib.licenses.bsd3; @@ -42774,8 +43087,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "hw-bits"; -version = "0.7.0.3"; -sha256 = "fc0cd24eba480a359db8b6133059102b15f462d467cff5216b5224cd2545d0fc"; +version = "0.7.0.5"; +sha256 = "1a4561307e8df6a6334db962fd772bf5bcc7d545727a9e2133e6d7aaffc46bdc"; libraryHaskellDepends = [ base bytestring @@ -42945,8 +43258,8 @@ mkDerivation { pname = "hw-hspec-hedgehog"; version = "0.1.0.5"; sha256 = "d3d17aadf474e82bb2d90c2d48cadf18724cbeab08e010bdf250591ce9c5f64f"; -revision = "1"; -editedCabalFile = "05fg0d89652yhsji35ckh9qiiy4y7c04i6zya9hrkgwl2jaq55fv"; +revision = "4"; +editedCabalFile = "1sr5cf1s86mp6nlw1vgj565zsrxmwa134g5003p1834vynyh98zq"; libraryHaskellDepends = [ base call-stack @@ -43112,6 +43425,8 @@ mkDerivation { pname = "hw-mquery"; version = "0.1.0.1"; sha256 = "724aa5b0490b57a89fb71b7042a3770f7978a4c975aa3d1b671576b0e83e113d"; +revision = "1"; +editedCabalFile = "0rxp6sqiskbrh30r7fqq2h2nbby9njdm9kj387njrb2xwyvd04m7"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -43174,8 +43489,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "hw-prim"; -version = "0.6.2.18"; -sha256 = "37c2a8cf3a6d7fdc14b0066d7b3b41408523be45385ca9496c6dec0da2cca6ea"; +version = "0.6.2.22"; +sha256 = "114cc374cf048f99f46c524d76f3ecd5f7d1774b47098cee79274eeabf54ae99"; libraryHaskellDepends = [ base bytestring @@ -43257,6 +43572,8 @@ mkDerivation { pname = "hw-rankselect-base"; version = "0.3.2.1"; sha256 = "d20a6cab42189cf71a85b355d0ed52167bc2991210c3af76139a2e6229f79360"; +revision = "2"; +editedCabalFile = "0djyix1fp00s8j0qjja4557wdflgixpz4fvrmwiw7x294zr9f9fw"; libraryHaskellDepends = [ base bits-extra @@ -43717,6 +44034,8 @@ mkDerivation { pname = "hxt-regex-xmlschema"; version = "9.2.0.3"; sha256 = "f4743ba65498d6001cdfcf5cbc3317d4bc43941be5c7030b60beb83408c892b0"; +revision = "1"; +editedCabalFile = "0vg9vnfjmq1ma6zwwv4yvfih6wbslksvsvy9b41i4f81l0hh7ia8"; libraryHaskellDepends = [ base bytestring @@ -43798,6 +44117,8 @@ mkDerivation { pname = "hybrid-vectors"; version = "0.2.2"; sha256 = "41c6c371df64b9083354e66101ad8c92f87458474fed2a149e4632db644f86d7"; +revision = "1"; +editedCabalFile = "16wpgh7cxgmap5acyccbff02b2jvhqiad5m3fknribpbahvmkk88"; libraryHaskellDepends = [ base deepseq @@ -43843,6 +44164,8 @@ mkDerivation { pname = "hyperloglog"; version = "0.4.2"; sha256 = "f5b83cfcc2c9d1e40e04bbc9724428b2655c3b54b26beef714c98dabee5f1048"; +revision = "1"; +editedCabalFile = "1zh47rrwih6933hhq9vd0ly5s42w0bn196znkg9l8q6r6drl7xsf"; setupHaskellDepends = [ base Cabal @@ -43893,8 +44216,8 @@ mkDerivation { pname = "hyphenation"; version = "0.7.1"; sha256 = "a25c5073f42896ccf81ff5936f3a42f290730f61da7f225b126ad22ff601b1c0"; -revision = "4"; -editedCabalFile = "0pp7qm40alsfd9z5dvp6l2c7dp9zp0skl9g0iib3jahxs3n8qcrr"; +revision = "5"; +editedCabalFile = "00wsp69aqi5i906liqa4sfs0p2yclhr1ihz8y1700b3ymb70lzql"; enableSeparateDataOutput = true; setupHaskellDepends = [ base @@ -43934,8 +44257,8 @@ mkDerivation { pname = "hyraxAbif"; version = "0.2.3.10"; sha256 = "6be4c3fae205e3c2e16ef25d71c9190cae9be0870edd086f07920f7afa0300f5"; -revision = "1"; -editedCabalFile = "1iq9bw70rwp0lghxi188iidvp29cinyam78n5d30rqb4p807fb55"; +revision = "2"; +editedCabalFile = "1dwkqlkjg5hbjlwl7cjxmhg1camhlqpaqjrpmkwknscj76hfckvi"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -44012,6 +44335,139 @@ description = "Flexible generation of identicons"; license = stdenv.lib.licenses.bsd3; }) {}; +"idris" = callPackage +({ + mkDerivation +, aeson +, annotated-wl-pprint +, ansi-terminal +, ansi-wl-pprint +, array +, async +, base +, base64-bytestring +, binary +, blaze-html +, blaze-markup +, bytestring +, Cabal +, cheapskate +, code-page +, containers +, deepseq +, directory +, filepath +, fingertree +, fsnotify +, gmp +, haskeline +, ieee754 +, libffi +, megaparsec +, mtl +, network +, optparse-applicative +, pretty +, process +, regex-tdfa +, safe +, split +, stdenv +, terminal-size +, text +, time +, transformers +, uniplate +, unix +, unordered-containers +, utf8-string +, vector +, vector-binary-instances +, zip-archive +}: +mkDerivation { + +pname = "idris"; +version = "1.3.1"; +sha256 = "d1a1b0dddbd551218fee0ecb2c223f082288888a41552ead3852a4425181c93a"; +configureFlags = [ +"-fcurses" +"-fexeconly" +"-fffi" +"-fgmp" +]; +isLibrary = true; +isExecutable = true; +enableSeparateDataOutput = true; +setupHaskellDepends = [ +base +Cabal +directory +filepath +process +]; +libraryHaskellDepends = [ +aeson +annotated-wl-pprint +ansi-terminal +ansi-wl-pprint +array +async +base +base64-bytestring +binary +blaze-html +blaze-markup +bytestring +cheapskate +code-page +containers +deepseq +directory +filepath +fingertree +fsnotify +haskeline +ieee754 +libffi +megaparsec +mtl +network +optparse-applicative +pretty +process +regex-tdfa +safe +split +terminal-size +text +time +transformers +uniplate +unix +unordered-containers +utf8-string +vector +vector-binary-instances +zip-archive +]; +librarySystemDepends = [ +gmp +]; +executableHaskellDepends = [ +base +directory +filepath +haskeline +transformers +]; +doHaddock = false; +doCheck = false; +homepage = "http://www.idris-lang.org/"; +description = "Functional Programming Language with Dependent Types"; +license = stdenv.lib.licenses.bsd3; + +}) {inherit (pkgs) gmp;}; "ieee754" = callPackage ({ mkDerivation @@ -44224,8 +44680,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "ihs"; -version = "0.1.0.2"; -sha256 = "98477e742e5f131c8ceae4f2ca451bee3de7135340005252d107fc791edaf932"; +version = "0.1.0.3"; +sha256 = "13bf923ad64d5dd1c517a64c0fd017fe94951a18ebbfe7e587b11e3ad6ebd5fd"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -44352,8 +44808,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "incremental-parser"; -version = "0.3.2"; -sha256 = "86dfe07bc4ffc94d7e2285d1e86cf01ed04076602668e911515ded25eb40f567"; +version = "0.3.2.1"; +sha256 = "d9515a1938d47bc9861600aac5304ac1b98727905145a061dc12664b45b56a1d"; libraryHaskellDepends = [ base monoid-subclasses @@ -44520,8 +44976,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "influxdb"; -version = "1.6.0.9"; -sha256 = "3a9e98e6de896cbfe7fcca6de6f0e94261130a0ea2bacccdacdf48f5f05a4277"; +version = "1.6.1"; +sha256 = "b7091b42093f74e45c76b00fba014450818fd8c9321f8b33f06f5f4a90b8dec1"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ @@ -44936,6 +45392,8 @@ mkDerivation { pname = "intern"; version = "0.9.2"; sha256 = "93a3b20e96dad8d83c9145dfc68bd9d2a6a72c9f64e4a7bc257d330070f42e20"; +revision = "1"; +editedCabalFile = "1mav591qx20p9dx4rg4xwpavqw8rciva82n7q0icdgvc1ayy7sl5"; libraryHaskellDepends = [ array base @@ -45230,6 +45688,8 @@ mkDerivation { pname = "invertible-grammar"; version = "0.1.1"; sha256 = "29900cf54783b8f67449a7fd45e986efaec6270cb31f3815650e9a0406061bef"; +revision = "1"; +editedCabalFile = "0hgssm0vm9d1n6iiz43jnr4pnyb6lxm0f2wyywldf8dnnd2j7qdf"; libraryHaskellDepends = [ base bifunctors @@ -45264,8 +45724,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "io-choice"; -version = "0.0.6"; -sha256 = "612b281110d18615000704f24fdb54a3b4401f7a39dcfe358433d7b4c22e1cef"; +version = "0.0.7"; +sha256 = "394a60c4b0bcb3ce0dab6618891ab6e7405e583f724ca445ddc58b59725a669b"; libraryHaskellDepends = [ base lifted-base @@ -45565,8 +46025,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "iproute"; -version = "1.7.6"; -sha256 = "919767c06e23f4cb2024d21ee2c8a85ec49d3b48cff95dd43ddc88e03ffc6ceb"; +version = "1.7.7"; +sha256 = "e6a3fe4a6f2a78fcee0f98255f97232d8b6b9b1fa48faee3bef96f0b462a4b3d"; libraryHaskellDepends = [ appar base @@ -46115,8 +46575,8 @@ mkDerivation { pname = "jmacro"; version = "0.6.15"; sha256 = "fae43fec6f4ba9ebc1fbd5605fc1b65b1c80bb0869bcfcd80d417e6d82cb6cac"; -revision = "1"; -editedCabalFile = "07jghfxn4m26q8rksxn4v6pcc8mwcjdlz1ypy7dqsvhzc3hs2s4i"; +revision = "2"; +editedCabalFile = "0r16y3sk22vgrciaadrdzjd768mnh08s019ffgk5jma782nz9v7d"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -46473,8 +46933,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "json"; -version = "0.9.2"; -sha256 = "e6bb16fa791cc3833ae7b459b7e7885c1c2b11b0d294b7e095287c54fa73738e"; +version = "0.9.3"; +sha256 = "8baf1de09983df8036fda854c4d1446f156a52d4988b863175e29af35c1d1afd"; libraryHaskellDepends = [ array base @@ -46584,8 +47044,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "json-feed"; -version = "1.0.3"; -sha256 = "a0c04b49c0f499070e2eb80784139f9a85729d4fdcfea15f71c099a634e1c623"; +version = "1.0.5"; +sha256 = "1a17437637404bc71cb1d3c1ad82bf26fc5b8c27cd71673a3b0f2a72b185c89f"; libraryHaskellDepends = [ aeson base @@ -46622,8 +47082,8 @@ mkDerivation { pname = "json-rpc-client"; version = "0.2.5.0"; sha256 = "5349f5c0b0fa8f6c5433152d6effc10846cfb3480e78c5aa99adb7540bcff49c"; -revision = "9"; -editedCabalFile = "04b65m8lhk2g2d5x5i637ff3wkgvf4z6dhn5x1pizsj9y3aq35zm"; +revision = "10"; +editedCabalFile = "19vf7gibvqgcm27b5n0ls4s7wi1kr87crn776ifqc9gbr2l9bfpi"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -47165,8 +47625,8 @@ mkDerivation { pname = "kansas-comet"; version = "0.4"; sha256 = "1f1a4565f2e955b8947bafcb9611789b0ccdf9efdfed8aaa2a2aa162a07339e1"; -revision = "16"; -editedCabalFile = "1fnncjd9wjwrnl0247gizlvwklihjbfk21pad6a4mqnaa3li5672"; +revision = "17"; +editedCabalFile = "1qnjg28rkwxwn2f8xisbx4f8pqxw2d70mczrjbrbyvx6gkdqzvri"; enableSeparateDataOutput = true; libraryHaskellDepends = [ aeson @@ -47225,6 +47685,8 @@ mkDerivation { pname = "katip"; version = "0.6.3.0"; sha256 = "0f745e8af5971b206ff1c0508bf6689b41e7e8274744fcba050ee67273404d5e"; +revision = "1"; +editedCabalFile = "1gv2jn85xvg54ijlizbg9f2m5r2zhd2fp1v2yhb5b0d9qxrqp516"; libraryHaskellDepends = [ aeson async @@ -47344,8 +47806,8 @@ mkDerivation { pname = "keycode"; version = "0.2.2"; sha256 = "56f9407cf182b01e5f0fda80f569ff629f37d894f75ef28b6b8af3024343d310"; -revision = "3"; -editedCabalFile = "18dgbpf3xwdm3x9j63vsr5q7l028qvifgc6jmjf1ar4p2wv1fzz0"; +revision = "4"; +editedCabalFile = "081spzhywygv90i7jwhbcm7p1aqz6qqph02ddxvqncghar5kjc7n"; libraryHaskellDepends = [ base containers @@ -47594,8 +48056,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "lackey"; -version = "1.0.5"; -sha256 = "c3e53667fcdc74b0d6cec072de9fc9440a045927d99a282e5cb3e923efc5b147"; +version = "1.0.7"; +sha256 = "8618f010d34ddc7a077198e6afc5ed3fcbcac4d3aaf3c916e9e43aac1ba92059"; libraryHaskellDepends = [ base servant @@ -47652,6 +48114,8 @@ mkDerivation { pname = "lambdabot-core"; version = "5.1.0.4"; sha256 = "f33bcef0e390c50569613696fa2dad8e5b5f6407a981e5e90f1a5c770807d7b2"; +revision = "3"; +editedCabalFile = "0rj67mygyclp9aczr4kadl0azngn8xmi5v2rzha780pjz483a6hj"; libraryHaskellDepends = [ base binary @@ -47905,8 +48369,8 @@ mkDerivation { pname = "language-docker"; version = "6.0.4"; sha256 = "8111f95648723df0a31fbf0424536e24dbe3a95996c013aed8f1c0a03ac534af"; -revision = "1"; -editedCabalFile = "0la3l8m32zmgb4nk4fwchy1abip0k1b0x1i9205dih136g1iaq62"; +revision = "2"; +editedCabalFile = "10f734lnj48wj9g59k2mj3fkdy7ckpi201058mfn3jlm35azv2fr"; libraryHaskellDepends = [ base bytestring @@ -48469,8 +48933,8 @@ mkDerivation { pname = "lattices"; version = "1.7.1.1"; sha256 = "797c89a34c6d631f76ff3bf342275f090ebceb705d6ad69c1a4108582b14ddaf"; -revision = "1"; -editedCabalFile = "18182vlzaz5kzcn2j0k1jmdl8kgqmnpjc3ynsi7v6jdl3vig89dr"; +revision = "2"; +editedCabalFile = "0qxz4v5pqwvhb79mz4b7wc66r2c0xc9ixfhss4h56jk3vb1hriys"; libraryHaskellDepends = [ base base-compat @@ -49002,8 +49466,8 @@ mkDerivation { pname = "lens-properties"; version = "4.11.1"; sha256 = "4f7c5b75a7204c151dbe62160a6917a22ab9e2a1b2e3848b7043d972ac8f4cb1"; -revision = "2"; -editedCabalFile = "1b14fcncz2yby0d4jhx2h0ma6nx0fd1z7hrg1va4h7zn06m99482"; +revision = "3"; +editedCabalFile = "1ll8j0zymxnr2xxp2h1aaqfcwd6ihjdllk5b7q02r5kw2b8a266b"; libraryHaskellDepends = [ base lens @@ -49215,6 +49679,8 @@ mkDerivation { pname = "libgraph"; version = "1.14"; sha256 = "b7978be50d6182101ca79fb3ea83d0621f5394d483d1fa1eb7d590e45f8d3f3f"; +revision = "1"; +editedCabalFile = "12xyrvvyh73b93k74lj55zwaygsvd93p4bm51kcd54m0pv0lclbq"; libraryHaskellDepends = [ array base @@ -49252,6 +49718,8 @@ mkDerivation { pname = "libmpd"; version = "0.9.0.9"; sha256 = "5b867ee675de1f490e58f5cb3903e1ea7e430ebca4b6d86e6b9c2c1c87a861a4"; +revision = "1"; +editedCabalFile = "16pzbmhyzlpxy2djmxrs0wrv8mad3ahb040lx5kmf57say3qxgdl"; libraryHaskellDepends = [ attoparsec base @@ -49321,8 +49789,8 @@ mkDerivation { pname = "lift-generics"; version = "0.1.2"; sha256 = "0e9fbd17cd3e1af6ef1e994e7c14cfd42896e56499864e707f72246b6e2b604e"; -revision = "2"; -editedCabalFile = "171f8cpn0kw9psikx3n7cdwyqfwg8rr8gf1hja6g7pnm0683l5l8"; +revision = "3"; +editedCabalFile = "0ackkmjfqxyxhy9w03zlqvmi68la9yv4jf0sc8qdhyr5y30ac68s"; libraryHaskellDepends = [ base generic-deriving @@ -49592,10 +50060,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "list-t"; -version = "1.0.1"; -sha256 = "c3438dde9d22e882ccdad091eb9c6f95706e9d564a57d5f845e991e706436773"; -revision = "1"; -editedCabalFile = "0jv0wxxr6rpw9mi3n6jbjqlk403wzycyafrc26vcwkdjaw63ckxb"; +version = "1.0.2"; +sha256 = "da6cad360db0ab9d01a37a54aa73c54b29f6088254e0770dc312ebd0d2b39223"; libraryHaskellDepends = [ base mmorph @@ -49986,8 +50452,8 @@ mkDerivation { pname = "log-domain"; version = "0.12"; sha256 = "7191cba40b9b348c54171f2b86caabb75a30e52b6d7e4c57321bf5dcdf1f367e"; -revision = "3"; -editedCabalFile = "19xc24jwfhzy3v26689sc4ma50w4ylqd378dpxphl0nrxili645z"; +revision = "4"; +editedCabalFile = "1z7p87dl1rj0v2gnfwfa7zmgaxccd093hvjkijc56whyg4b4az4y"; setupHaskellDepends = [ base Cabal @@ -50041,8 +50507,8 @@ mkDerivation { pname = "log-postgres"; version = "0.7.0.2"; sha256 = "51c60374838cbd89d027cde9cdf2d8982b4f4152befe76899085520922e5639b"; -revision = "1"; -editedCabalFile = "1f18nzrh3bxnb58cmd3zyqpwaw2jyfl92dg6qd30zhlvlnkz1q7q"; +revision = "3"; +editedCabalFile = "1m16y1g9vaan5vcm9krqfppwc0zisi005d0ckqbwga3vyyw58lwl"; libraryHaskellDepends = [ aeson aeson-pretty @@ -50329,6 +50795,31 @@ homepage = "http://code.haskell.org/~dolio/"; description = "A backtracking logic-programming monad"; license = stdenv.lib.licenses.bsd3; +}) {}; +"long-double" = callPackage +({ + mkDerivation +, base +, integer-gmp +, stdenv +}: +mkDerivation { + +pname = "long-double"; +version = "0.1"; +sha256 = "9218e8175afe5fb69aae72ad65c8b4dfdc943f137a5e95184673a03dc3765e1c"; +revision = "1"; +editedCabalFile = "12vmzzrxgb4yqf9axf1fildl4m0dfm3zqxk4vg6k6m5qi6haz1yn"; +libraryHaskellDepends = [ +base +integer-gmp +]; +doHaddock = false; +doCheck = false; +homepage = "https://code.mathr.co.uk/long-double"; +description = "FFI bindings for C long double"; +license = stdenv.lib.licenses.bsd3; + }) {}; "loop" = callPackage ({ @@ -50362,8 +50853,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "lrucache"; -version = "1.2.0.0"; -sha256 = "5f17a9e026e198152d13830a0eae0df21be437c238a3f157f7c188fe27a37616"; +version = "1.2.0.1"; +sha256 = "fc1ab2375eeaae181d838095354d3ef77d4072815006a285dd39a165a5855b85"; libraryHaskellDepends = [ base containers @@ -50392,8 +50883,8 @@ mkDerivation { pname = "lrucaching"; version = "0.3.3"; sha256 = "aa7e5fd27963c70fc1108a7c0526ca0e05f76ccd885844bc50bdae70d5174aa4"; -revision = "5"; -editedCabalFile = "0dfrgg60nd7l7pfjar1s1g380r4591y6ccv9fyh0n34ymhizk84y"; +revision = "8"; +editedCabalFile = "11ad87kg09s9md9lqzhbcw19kmzvii4v97nw49q0wb0rs0qizpki"; libraryHaskellDepends = [ base base-compat @@ -51147,8 +51638,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "massiv"; -version = "0.2.2.0"; -sha256 = "6cc1e7eda0db0a420e0183cf5fdb878e100526caf96dabb8a02c82039a1986d7"; +version = "0.2.5.0"; +sha256 = "3ff9f83efb3f77e1bd5b5831af1170f3f703d8d82b43726778fd63ddab29e564"; libraryHaskellDepends = [ base bytestring @@ -51418,6 +51909,8 @@ mkDerivation { pname = "mbox-utility"; version = "0.0.1"; sha256 = "e5e009f83c95b20d85c4b39d233b2f32ee15eae08d54edbaa7928848ae15e9f8"; +revision = "1"; +editedCabalFile = "0lhka293xbgsjs7sb3yrck6q7vw4dfdhpmpalc7s9az1mj4l4mjz"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -51641,8 +52134,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "mega-sdist"; -version = "0.3.3.1"; -sha256 = "9c27f3f84bfdb48ee6c85e17201893a8767f3f5b28d8f282b60ca018522d965c"; +version = "0.3.3.2"; +sha256 = "a4e1c3ba865a59161bf3ef30fa78310201b2d88ff9e72a6691578f723857144a"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -51682,10 +52175,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "megaparsec"; -version = "6.5.0"; -sha256 = "bebdef43c6b857b8c494de79bcd2399ef712c403ee1353e5481db98b8f7f2f8a"; -revision = "4"; -editedCabalFile = "0ij3asi5vwlhbgwsy6nhli9a0qb7926mg809fsgyl1rnhs9fvpx1"; +version = "7.0.4"; +sha256 = "325ba5cee8cdef91e351fb2db0b38562f8345b0bcdfed97045671357501de8c1"; libraryHaskellDepends = [ base bytestring @@ -51823,8 +52314,8 @@ mkDerivation { pname = "messagepack"; version = "0.5.4"; sha256 = "939590c05d5b0831b3b4796f2e1a070e290982c92b2009f2aa1ef5f4b05b5d7c"; -revision = "1"; -editedCabalFile = "0p13in70gvxl8d8hjl1dcxczfpcfyffy2lxbdy1d21h742ks1zjb"; +revision = "2"; +editedCabalFile = "199x0hqa6h6wqysaip1wc7kivc26f3wkb8y4il70mzmz80skmm29"; libraryHaskellDepends = [ base bytestring @@ -51962,6 +52453,8 @@ mkDerivation { pname = "micro-recursion-schemes"; version = "5.0.2.2"; sha256 = "3bddd1f22638f7e34563876e711e38351b8f36e50b45f3e5553068a2b25c5e9e"; +revision = "1"; +editedCabalFile = "0zdyg5w4fhdps5cirp21wpd6056v09381lmdf9mizfxilhx4wziy"; libraryHaskellDepends = [ base template-haskell @@ -52270,6 +52763,8 @@ mkDerivation { pname = "microlens-th"; version = "0.4.2.3"; sha256 = "321018c6c0aad3f68eb26f6c7e7a518db43039e3f8f19c4634ceb4c7f8051c8f"; +revision = "1"; +editedCabalFile = "167in7b1qhgrspx81bdm2jyg9qji66sk7id282c0s99kmp0d01n6"; libraryHaskellDepends = [ base containers @@ -52331,8 +52826,8 @@ mkDerivation { pname = "microstache"; version = "1.0.1.1"; sha256 = "5de98542313eb75f84961366ff8a70ed632387ba6518215035b2dd1b32d6a120"; -revision = "3"; -editedCabalFile = "1pq0h64vxc7zlncn2ld6k02wi6rfa5ccqc4z0hfkvaldj41y2sb1"; +revision = "4"; +editedCabalFile = "0rkc0zmwi2vx47l4ssjkxlyd54fxz0w3xrgdhn7baf66gr90nrc7"; libraryHaskellDepends = [ aeson base @@ -52499,6 +52994,8 @@ mkDerivation { pname = "mime-mail"; version = "0.4.14"; sha256 = "9632c3d54c9741fece0a3ea705d965485a1299ebe5798d2aa7cca2c8e4baaa3e"; +revision = "1"; +editedCabalFile = "14zadyz63gjpf58h6v36w3jwwpxpg86czw19r4211wprqfclvr92"; libraryHaskellDepends = [ base base64-bytestring @@ -52581,8 +53078,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "mime-types"; -version = "0.1.0.8"; -sha256 = "a88b14a27cb03a0193b1d7afdbfcded82f3aff3eec2e20fd3f41794190a08c91"; +version = "0.1.0.9"; +sha256 = "0a32435169ef4ba59f4a4b8addfd0c04479410854d1b8d69a1e38fb389ba71d2"; libraryHaskellDepends = [ base bytestring @@ -52847,8 +53344,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "mixed-types-num"; -version = "0.3.1.4"; -sha256 = "c4ffffea5a5eae0a1fafde3187be1bdf9cd0d166bee0bd502b1aa6cd898dc100"; +version = "0.3.1.5"; +sha256 = "7cf0bf14c2ddc643cfaa0e2526b6c2c0c2b1200f29b6f30b5bd550e377d1c058"; libraryHaskellDepends = [ base convertible @@ -53058,10 +53555,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "mmark-ext"; -version = "0.2.1.0"; -sha256 = "1a02396a80708c60b3aecb668c16a3d0cb890bbfcc4fbf722c9742b75ce23fcd"; -revision = "2"; -editedCabalFile = "0xcjkzaah0npyw87mdsymq4bjwdf988fqmylzgr4kihks1a8d4xs"; +version = "0.2.1.1"; +sha256 = "98554e8b04c47e208cb0e3d5a61fb064eb25fbdaf9eb3ebf4faf9663533b5b05"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -53244,8 +53739,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "moesocks"; -version = "1.0.0.44"; -sha256 = "bf35a237dffeaebc82237439fe457d0c423d235a48a69f02c9e616297540e1c8"; +version = "1.0.1.0"; +sha256 = "12b3a50e514a880dfce5d81bff0d7b180a16b1e5407ab1497b31d233108c8d3c"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -54159,8 +54654,10 @@ license = stdenv.lib.licenses.asl20; mkDerivation { pname = "mono-traversable"; -version = "1.0.9.0"; -sha256 = "4adf52e3c3ddd3dfd5d570279bccb4b2a66305175c160e440ef36edf809e0005"; +version = "1.0.10.0"; +sha256 = "0096dbf6f3651b3834637a2ba4dcb6fafcd782546a542a286d2ecfae277b8811"; +revision = "1"; +editedCabalFile = "1hgwrmq7r8d1nq9283wis67lg0wlid2sgqnr9vpsv2wpnd4n1rdl"; libraryHaskellDepends = [ base bytestring @@ -54425,6 +54922,7 @@ license = "LGPL"; ({ mkDerivation , base +, fail , monad-peel , mtl , stdenv @@ -54433,10 +54931,11 @@ license = "LGPL"; mkDerivation { pname = "mstate"; -version = "0.2.7"; -sha256 = "4508e3e7cc2dec5a0e75ba7dd085c73fdd4f886ac6d1a74cf071816795bb2c17"; +version = "0.2.8"; +sha256 = "0554d67f4c992f9780b81ffee2b91ddf9fe7ceb59eeb977ad71eac3935015b8e"; libraryHaskellDepends = [ base +fail monad-peel mtl stm @@ -54852,8 +55351,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "mysql"; -version = "0.1.5"; -sha256 = "49b367d07f6d93fd4cbd08390f83bbf8e40c66156a1d2b0f570b68921e6f3075"; +version = "0.1.6"; +sha256 = "9e549f61c9259ba82405b5dab2d00f010de720edc30cf4ce5a51a367c72799ee"; setupHaskellDepends = [ base Cabal @@ -55170,8 +55669,8 @@ mkDerivation { pname = "nats"; version = "1.1.2"; sha256 = "b9d2d85d8612f9b06f8c9bfd1acecd848e03ab82cfb53afe1d93f5086b6e80ec"; -revision = "1"; -editedCabalFile = "1jzyysf758lfindlclqpzqcd0lrgrdv0rnz2lg8g1rvv07x2n7zh"; +revision = "3"; +editedCabalFile = "02ww45nskca28fsbh74iy0z4rm0yshws7lrxld45y053hrn1jdzc"; doHaddock = false; doCheck = false; homepage = "http://github.com/ekmett/nats/"; @@ -55239,8 +55738,8 @@ mkDerivation { pname = "natural-transformation"; version = "0.4"; sha256 = "aac28e2c1147ed77c1ec0f0eb607a577fa26d0fd67474293ba860ec124efc8af"; -revision = "6"; -editedCabalFile = "0qdjf1756gmq6vjd1p7i4b398s7j1gqfiaz3yf894h5p6x1ym0zl"; +revision = "7"; +editedCabalFile = "03nkhdrwki9j81clgfck4yl7ylv6dwa7gi77kknzq3s3nqlp728v"; libraryHaskellDepends = [ base ]; @@ -55293,8 +55792,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "neat-interpolation"; -version = "0.3.2.2"; -sha256 = "b6c8c5eca58ee99f9528ff21386ffa8e7dbc2e02186824cbaf74d795b0c9cc39"; +version = "0.3.2.4"; +sha256 = "de7370d938ffd8c7b52d732f4f088387ed8216cf9767d818e99b7ec827931752"; libraryHaskellDepends = [ base base-prelude @@ -55415,6 +55914,8 @@ mkDerivation { pname = "nettle"; version = "0.3.0"; sha256 = "cf3f08980e8e52190301d33db3b1fe7f02bcf5d276a74a8b8283b79e72bf7d5d"; +revision = "1"; +editedCabalFile = "1j8h6m4cj1ykxrsxmjiyb1c4mv6cawssgb8phl0aijrjn3b79f2b"; libraryHaskellDepends = [ base byteable @@ -55792,12 +56293,14 @@ mkDerivation { pname = "network-info"; version = "0.2.0.10"; sha256 = "5680f6975d34cf4f81fa7ca0c8efd682261d6a1119e06dece0f67c7bd97fd52a"; +revision = "1"; +editedCabalFile = "07kiw56lhc56kqrnvpa11f5nnnid6by3aq00jrkcbbg7w0q71a6d"; libraryHaskellDepends = [ base ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/jystic/network-info"; +homepage = "http://github.com/jacobstanley/network-info"; description = "Access the local computer's basic network configuration"; license = stdenv.lib.licenses.bsd3; @@ -55853,6 +56356,8 @@ mkDerivation { pname = "network-multicast"; version = "0.2.0"; sha256 = "0f3b50abc3a401c20cc6a0ec51a49d2a48e5b467d9fbd63b7cf803165fe975f2"; +revision = "2"; +editedCabalFile = "1hha4vvyrx29d2lwwjl0bfpbaj00k85bd4w83s4hvawqbxqvvhkw"; libraryHaskellDepends = [ base network @@ -55879,6 +56384,8 @@ mkDerivation { pname = "network-simple"; version = "0.4.3"; sha256 = "0dd5cf1ed308bbe9601dc39026419151f552f386ec5e82417ad4f86cc4539028"; +revision = "2"; +editedCabalFile = "073g0agplvgan62s638w5hcq25biq8f811xhha6drfyxybs6cspn"; libraryHaskellDepends = [ base bytestring @@ -56152,6 +56659,8 @@ mkDerivation { pname = "newtype"; version = "0.2"; sha256 = "b714033abd9a8b0903bcef0d36d0913de2a5003c852f43f97fa688717289e459"; +revision = "1"; +editedCabalFile = "0rbhpa1krcmvv4hsy3h5h8l4vqjk9wckddcz34rfcq0m7zlmsrfz"; libraryHaskellDepends = [ base ]; @@ -56274,6 +56783,8 @@ mkDerivation { pname = "non-empty"; version = "0.3.0.1"; sha256 = "3fbd074804df96f307ae60a67b13e215b635e80a3505ee5f5b0bb26ad9b5eb03"; +revision = "1"; +editedCabalFile = "1628z42q77xjvwpyx3rifqf6mh4y6ivdl0lkhngxwz8c21bnf7d3"; libraryHaskellDepends = [ base containers @@ -57443,6 +57954,8 @@ mkDerivation { pname = "openpgp-asciiarmor"; version = "0.1.1"; sha256 = "b92f3f5316f18c9e30a95cd59888658384ddd20b628e4cd5fbb647177f52f607"; +revision = "1"; +editedCabalFile = "0j4qra3i7g607axj07d7f0ycj07d889nyw2s04m5wc98blbm5k4j"; libraryHaskellDepends = [ attoparsec base @@ -57639,6 +58152,8 @@ mkDerivation { pname = "optional-args"; version = "1.0.2"; sha256 = "2e3454ad77cba80b15c02dbe1915889fafa81a22deb7fe5e7e01b0dd8d85b0e4"; +revision = "1"; +editedCabalFile = "0fda6mhm44qpbc9hfkf6jxnm3a7qszabywsmxa2iw0dz734a9xl3"; libraryHaskellDepends = [ base ]; @@ -57690,6 +58205,8 @@ mkDerivation { pname = "optparse-applicative"; version = "0.14.3.0"; sha256 = "72476302fe555a508917b2d7d6121c7b58ea5434cdc08aeb5d4b652e8f0e7663"; +revision = "2"; +editedCabalFile = "1a08dqjly1xy730f6jf45frr8g8gap0n1vg9b0mpzpydv0kgzmrp"; libraryHaskellDepends = [ ansi-wl-pprint base @@ -57724,6 +58241,8 @@ mkDerivation { pname = "optparse-generic"; version = "1.3.0"; sha256 = "80929958606e4a73672b570ba1a23493fbf46268666d14ab5af53623301c398f"; +revision = "2"; +editedCabalFile = "1ldkzq0g70y2w69ywg2d5agrd74y7c4iblg3yflyvmzifr11d1ls"; libraryHaskellDepends = [ base bytestring @@ -57746,7 +58265,7 @@ license = stdenv.lib.licenses.bsd3; ({ mkDerivation , base -, gitrev +, githash , optparse-applicative , stdenv , template-haskell @@ -57755,11 +58274,13 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "optparse-simple"; -version = "0.1.0"; -sha256 = "838d795faa3de3b426b83df11834bead33d02d7fe89df30300ca05c72e714cbc"; +version = "0.1.1"; +sha256 = "03d31baa535cecba5761e66adcc9514a6d93875eb956b8e4646c0f62dbe055a4"; +isLibrary = true; +isExecutable = true; libraryHaskellDepends = [ base -gitrev +githash optparse-applicative template-haskell transformers @@ -58060,8 +58581,8 @@ mkDerivation { pname = "pandoc"; version = "2.2.1"; sha256 = "fe037f5fbb62fb27e7b1dbddfbd0aa45ea6e9fcdaff1f2203f7484c245b211b7"; -revision = "1"; -editedCabalFile = "16f2c7awxbs17xycl3z1x11h7gc7rfzvw7i3pslsn9nms7rz3s3v"; +revision = "2"; +editedCabalFile = "05i037qlzh7akshv0ph7lk565x3sl91x227ls9jh71m2hhslyslf"; configureFlags = [ "-fhttps" "-f-trypandoc" @@ -58171,8 +58692,8 @@ license = stdenv.lib.licenses.gpl2; mkDerivation { pname = "pandoc-citeproc"; -version = "0.14.8"; -sha256 = "f4a3c160688ab26afb2d1cdb64494b5282532d375c6c6278a90d3b4d8d35adff"; +version = "0.14.8.1"; +sha256 = "df0164e5d983716e33cefdc0a79deb9cf5e66f109aef93b416b38f9916e88d11"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -58245,6 +58766,8 @@ mkDerivation { pname = "pandoc-types"; version = "1.17.5.4"; sha256 = "32aca86c510bd23c6bd54ce1a37ca005f4b84f077ab8e835a522833cf5179327"; +revision = "1"; +editedCabalFile = "0bpd2iqmriajl5qg44j4z9c4agb9gsdwbn5l4c5yry6flivysq3c"; libraryHaskellDepends = [ aeson base @@ -59618,6 +60141,8 @@ mkDerivation { pname = "persistent-sqlite"; version = "2.8.2"; sha256 = "e6faf5d17132dc7e36c932dcd88cf66e680fe75a4341f8ed83551bf2e5ae0bb2"; +revision = "1"; +editedCabalFile = "10ck5x420iq1mqy51hywbml84q3hhfgd02mscjnpsp0n2g1j3v0j"; configureFlags = [ "-fsystemlib" ]; @@ -59677,8 +60202,8 @@ mkDerivation { pname = "persistent-template"; version = "2.5.4"; sha256 = "4cae740ce92f98cb3ae9e092e740753394d5687b887399ee5f87af7f3c730a01"; -revision = "2"; -editedCabalFile = "03qgwk32krldph3blw5agiqcpccr3649hajyn8wm9k71zz82dpn6"; +revision = "4"; +editedCabalFile = "08yb4kcmpqmm50lwrbmavd0zhgg6p7bl8dy026xw644cazrzcvr1"; libraryHaskellDepends = [ aeson aeson-compat @@ -59797,8 +60322,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "picosat"; -version = "0.1.4"; -sha256 = "5a6d9fae04a77a95a8c92ec6dd76302010b726d8c934dc8d8bbabc82851e9039"; +version = "0.1.5"; +sha256 = "de480988ea0f2c599fc0c844667b56834656d112e1a0b53b4068794a43fb8671"; libraryHaskellDepends = [ base containers @@ -59871,8 +60396,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "pinboard"; -version = "0.9.12.10"; -sha256 = "bac98d28d29f47d39ca15f0b406f438fb2797841a21edfd1cdf8d54bdb64b049"; +version = "0.9.12.11"; +sha256 = "a0f19d8ebe3a77306a7bd0c16b71381403cf2052baf99aa448cb0a7a1e4d728b"; libraryHaskellDepends = [ aeson base @@ -59917,8 +60442,8 @@ mkDerivation { pname = "pipes"; version = "4.3.9"; sha256 = "5c4cda351f9cf59376832baaeb857db25bd4990fd78c4b061aca0bde47271acb"; -revision = "1"; -editedCabalFile = "0mkwbbn8vlrsvm3pl2cyaw1qr9hbjqfm831naj7cbrmiksf2l5aa"; +revision = "2"; +editedCabalFile = "0pw4i3pdg3i98a9mbps0ycgb70vf4p7dqv08xf365iy4dzdm3a1i"; libraryHaskellDepends = [ base exceptions @@ -60117,8 +60642,8 @@ mkDerivation { pname = "pipes-concurrency"; version = "2.0.12"; sha256 = "4343c67710e2fcd8987c537389773358150559bf06e86d96b1097c15ae81589d"; -revision = "1"; -editedCabalFile = "1c1rys2pp7a2z6si925ps610q8a38a6m26s182phwa5nfhyggpaw"; +revision = "2"; +editedCabalFile = "1c06nypirrd76jg5y508517smxh3izy98y6kj89k79kbpi5rncbj"; libraryHaskellDepends = [ async base @@ -60308,6 +60833,8 @@ mkDerivation { pname = "pipes-http"; version = "1.0.5"; sha256 = "49a196466de1638f3806a49bf10fef9eb3c06456ababf09ffd025b6b64f23055"; +revision = "1"; +editedCabalFile = "015psgj5wl67p0qdc00nrn717gv354gii70c57n1px5j81b0z5cl"; libraryHaskellDepends = [ base bytestring @@ -60703,12 +61230,13 @@ license = stdenv.lib.licenses.bsd3; , microlens-th , stdenv , text +, time }: mkDerivation { pname = "plotlyhs"; -version = "0.2"; -sha256 = "85fb0446b3e92267357dc52b770da90b222b85337f3db593e0350021d1e53259"; +version = "0.2.1"; +sha256 = "c95ed42c789d26165183c2cbb4e8a44065478cad0a80053ac8e6fa2a84c7ecb4"; libraryHaskellDepends = [ aeson base @@ -60719,10 +61247,11 @@ lucid microlens microlens-th text +time ]; doHaddock = false; doCheck = false; -homepage = "https://github.com/filopodia/open/plotlyhs"; +homepage = "https://github.com/diffusionkinetics/open/plotlyhs"; description = "Haskell bindings to Plotly.js"; license = stdenv.lib.licenses.mit; @@ -60750,8 +61279,8 @@ mkDerivation { pname = "pointed"; version = "5.0.1"; sha256 = "b94635a5c8779238501a9156015422ce2fb4d5efd45d68999e8cbe2ecc5121dd"; -revision = "1"; -editedCabalFile = "1ccjmzz3jf5ybrzv7qdwm3qb8rz0yskvi4ackrixyhdk8bg5f3nc"; +revision = "2"; +editedCabalFile = "00m4f6rgxa3qa72j3jzpg6rrd9k9n4ll2idxlyybil3lxd63r80w"; libraryHaskellDepends = [ base comonad @@ -61014,8 +61543,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "postgresql-binary"; -version = "0.12.1.1"; -sha256 = "fb00b37b213e00369ae17145ed8487ac0bfe295f35b3ef24afaba76f9dbf36a0"; +version = "0.12.1.2"; +sha256 = "83ad514b9f6328e89f92f66a60de7f65609386773b6edf27f8aee2ee52120582"; libraryHaskellDepends = [ aeson base @@ -61184,8 +61713,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "postgresql-simple-migration"; -version = "0.1.12.0"; -sha256 = "98f8b2eab06474e63c76b2d048d6a08d818d086b66e84caa27f3f0a368445da3"; +version = "0.1.13.1"; +sha256 = "0ac9a3c789c8e6e85710809b1bdfd48cc81aa58963169a71db4bdb3e26587475"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -61418,6 +61947,8 @@ mkDerivation { pname = "pqueue"; version = "1.4.1.2"; sha256 = "d2aaacbe069a5dac61cee677c68eb34d74afa09c59d90d43e2fa07a6c5869fec"; +revision = "1"; +editedCabalFile = "1la186z2np3nv06p0485xwg342gyjp7a2ikg73qs7mbg086352zs"; libraryHaskellDepends = [ base deepseq @@ -62126,8 +62657,8 @@ mkDerivation { pname = "profunctors"; version = "5.2.2"; sha256 = "e981e6a33ac99d38a947a749179bbea3c294ecf6bfde41660fe6d8d5a2e43768"; -revision = "2"; -editedCabalFile = "1ywlg9z8nlhd2avgb8c6gbkv8zyk7hvc25926bafyg0m0k8y1amq"; +revision = "3"; +editedCabalFile = "0qf59phdzwa2p3nirq4vnmlxw9qfy1bcskk4nflab1fr4jwnsrs4"; libraryHaskellDepends = [ base base-orphans @@ -62168,6 +62699,8 @@ mkDerivation { pname = "project-template"; version = "0.2.0.1"; sha256 = "eb52496fa7448f5fed445525c05327b31a45282fc1d0a772c7022a9809e7c9dc"; +revision = "1"; +editedCabalFile = "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a"; libraryHaskellDepends = [ base base64-bytestring @@ -62882,6 +63415,8 @@ mkDerivation { pname = "psqueues"; version = "0.2.7.0"; sha256 = "4cf3628884015b091471e4425f5414207fd547cf71d9546e9b7318d857624fea"; +revision = "1"; +editedCabalFile = "0ncag4p7v41x5disbvkwzmv0c7ifc85lmjljzvf8d33arh7b08bj"; libraryHaskellDepends = [ base deepseq @@ -63160,8 +63695,8 @@ license = stdenv.lib.licenses.publicDomain; mkDerivation { pname = "qnap-decrypt"; -version = "0.3.2"; -sha256 = "da930b2e821d3a1de08e6f85262793d4cbdd0d63dca017c7b2e3ad63ed6501e3"; +version = "0.3.3"; +sha256 = "66b9a66298a950abe9639c248be8448a43a9afc1a86655148a86bbecbfbf963f"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -63934,6 +64469,8 @@ mkDerivation { pname = "rasterific-svg"; version = "0.3.3.2"; sha256 = "02db61c98e6e550824e8d9813efe5e97293843e39e1c00e88837061b61a017c4"; +revision = "1"; +editedCabalFile = "19i9wlk951d85dqnmbgrnz0fg4xcw7cbv9cs2h8b440lycj3p4cv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -63991,8 +64528,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "ratel"; -version = "1.0.5"; -sha256 = "993ce9a8d58619802d286e3be152e295cb38c9dba85ffa0904ed6044972bc52a"; +version = "1.0.7"; +sha256 = "fc7cd1f9ad297b211ac639cb4c78be9c973bc11a0a01b9b5e5470dcb0b71e6ce"; libraryHaskellDepends = [ aeson base @@ -64027,8 +64564,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "ratel-wai"; -version = "1.0.3"; -sha256 = "04558e3e91e873080810f4441940293ef0874cf2b330bdb4518000307120732e"; +version = "1.0.4"; +sha256 = "9528a62b62107b606c9aad9f14f5f5d8e588d22c988fc7e720aa03e2822131b3"; libraryHaskellDepends = [ base bytestring @@ -64563,6 +65100,8 @@ mkDerivation { pname = "reducers"; version = "3.12.3"; sha256 = "7186733767405984c1eda96b18908f458b379f116a1589cd66f4319fe8458e27"; +revision = "1"; +editedCabalFile = "1v0r75wkaahxdv4y0sqgcikvgwymiz12fa8nkk59n1g4x9nng9wb"; libraryHaskellDepends = [ array base @@ -64688,6 +65227,8 @@ mkDerivation { pname = "refined"; version = "0.2.3.0"; sha256 = "664abf6de7c010416cfe2666c61b910c155dae1652f2662690c2add8c5c384f5"; +revision = "1"; +editedCabalFile = "0nxkm2igfx6d650jkimw53pn2vhmv5x2xmffp3nyzf2178z15hy4"; libraryHaskellDepends = [ base containers @@ -64717,6 +65258,8 @@ mkDerivation { pname = "reflection"; version = "2.1.4"; sha256 = "f22fc478d43a36ec3d6c48c57ec53636c0bf936f3733b9a2b34e1a2e6351c44d"; +revision = "1"; +editedCabalFile = "05ibi4ivvh87d96xl09yh0day08p5www5vp568mvn2dp37rxyngc"; libraryHaskellDepends = [ base template-haskell @@ -64727,6 +65270,59 @@ homepage = "http://github.com/ekmett/reflection"; description = "Reifies arbitrary terms into types that can be reflected back into terms"; license = stdenv.lib.licenses.bsd3; +}) {}; +"regex" = callPackage +({ + mkDerivation +, array +, base +, base-compat +, bytestring +, containers +, hashable +, regex-base +, regex-pcre-builtin +, regex-tdfa +, regex-tdfa-text +, stdenv +, template-haskell +, text +, time +, time-locale-compat +, transformers +, unordered-containers +, utf8-string +}: +mkDerivation { + +pname = "regex"; +version = "1.0.2.0"; +sha256 = "aacd9b91e0598931745db5a3eea1cdfd6edf3b1e18ceb288c82eb8088b005fb8"; +libraryHaskellDepends = [ +array +base +base-compat +bytestring +containers +hashable +regex-base +regex-pcre-builtin +regex-tdfa +regex-tdfa-text +template-haskell +text +time +time-locale-compat +transformers +unordered-containers +utf8-string +]; +doHaddock = false; +doCheck = false; +homepage = "http://regex.uk"; +description = "Toolkit for regex-base"; +license = stdenv.lib.licenses.bsd3; + }) {}; "regex-applicative" = callPackage ({ @@ -64795,6 +65391,8 @@ mkDerivation { pname = "regex-base"; version = "0.93.2"; sha256 = "20dc5713a16f3d5e2e6d056b4beb9cfdc4368cd09fd56f47414c847705243278"; +revision = "1"; +editedCabalFile = "1ijzh7yz7i6hvn8xlgyrc75l7zzn0z3kd4ks2yjfih4iir63y4ns"; libraryHaskellDepends = [ array base @@ -65049,6 +65647,51 @@ doCheck = false; description = "Text interface for regex-tdfa"; license = stdenv.lib.licenses.bsd3; +}) {}; +"regex-with-pcre" = callPackage +({ + mkDerivation +, base +, base-compat +, bytestring +, containers +, regex +, regex-base +, regex-pcre-builtin +, regex-pcre-text +, regex-tdfa +, stdenv +, template-haskell +, text +, transformers +, unordered-containers +}: +mkDerivation { + +pname = "regex-with-pcre"; +version = "1.0.2.0"; +sha256 = "53c7bd8fc0e361b04af3bd3f2f546826a88b6827b252688d4ebb3fb8092f76a7"; +libraryHaskellDepends = [ +base +base-compat +bytestring +containers +regex +regex-base +regex-pcre-builtin +regex-pcre-text +regex-tdfa +template-haskell +text +transformers +unordered-containers +]; +doHaddock = false; +doCheck = false; +homepage = "http://regex.uk"; +description = "Toolkit for regex-base"; +license = stdenv.lib.licenses.bsd3; + }) {}; "reinterpret-cast" = callPackage ({ @@ -65321,6 +65964,8 @@ mkDerivation { pname = "repa"; version = "3.4.1.4"; sha256 = "43607a5de4b89b8e58bfcbc261445d89fa40b685d43952797704b80d09e5a39e"; +revision = "2"; +editedCabalFile = "16kyy7ck3yki0mlcap0bbiadcn18yn6x90m4s2prkasi9ip0pcs8"; libraryHaskellDepends = [ base bytestring @@ -65442,8 +66087,8 @@ mkDerivation { pname = "req-conduit"; version = "1.0.0"; sha256 = "1da764e4bdc5454aef3d79cff2d72c9fa393a8d049ab14c3ba2be77325d96ba4"; -revision = "3"; -editedCabalFile = "1gnaq7ya4grjwadz58r9g10dybgg50ch89bhbnhyicdins2aa9b2"; +revision = "5"; +editedCabalFile = "1vbki857d5xj54s83r7kqirrg9a738xr55d40xqcaxxm7ki4s63i"; libraryHaskellDepends = [ base bytestring @@ -65476,6 +66121,8 @@ mkDerivation { pname = "req-url-extra"; version = "0.1.0.0"; sha256 = "b3de266ad49fb3c03ff26d589d89f81ddea7f319900b07e59843e57986d37d84"; +revision = "2"; +editedCabalFile = "0srj9fcbm9y8ddqgs8wc6caxamhgnic54y8qpxwnqdxrggdfkk67"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -65554,6 +66201,8 @@ mkDerivation { pname = "reroute"; version = "0.5.0.0"; sha256 = "b998bb94720d9a9a1f6bc8f91f60f22d8f55dec364c4cb27838fe7333e7987f2"; +revision = "2"; +editedCabalFile = "1lyrm0ca4a9312b26a5gsi1s9vr6b6vlizwblc49h33hviy78q1k"; libraryHaskellDepends = [ base deepseq @@ -66035,8 +66684,8 @@ license = "unknown"; mkDerivation { pname = "rio"; -version = "0.1.5.0"; -sha256 = "ef5ca46633c2cb3cc4e5c4fef32e0311a2be70dd60aad1d2216a940b89429018"; +version = "0.1.7.0"; +sha256 = "ec23cc81a272efed69af0bcb4528116eb258a5b82a6f526fd27b39053eb65db1"; libraryHaskellDepends = [ base bytestring @@ -66182,6 +66831,28 @@ homepage = "http://github.com/matt-noonan/roles/"; description = "Composable class-based roles"; license = stdenv.lib.licenses.bsd3; +}) {}; +"rosezipper" = callPackage +({ + mkDerivation +, base +, containers +, stdenv +}: +mkDerivation { + +pname = "rosezipper"; +version = "0.2"; +sha256 = "6cab4f1c192cc3b8b0a9eb11a32780d235020a539a0e91125eed5ec590bad7bc"; +libraryHaskellDepends = [ +base +containers +]; +doHaddock = false; +doCheck = false; +description = "Generic zipper implementation for Data.Tree"; +license = stdenv.lib.licenses.bsd3; + }) {}; "rot13" = callPackage ({ @@ -66208,6 +66879,43 @@ description = "Fast ROT13 cipher for Haskell"; license = stdenv.lib.licenses.bsd3; }) {}; +"rounded" = callPackage +({ + mkDerivation +, base +, ghc-prim +, gmp +, hgmp +, long-double +, mpfr +, reflection +, singletons +, stdenv +}: +mkDerivation { + +pname = "rounded"; +version = "0.1.0.1"; +sha256 = "9abeea23692dd57e879eda210308ef5ef213169b4cb9e4e6c13de02d52a04b11"; +libraryHaskellDepends = [ +base +ghc-prim +hgmp +long-double +reflection +singletons +]; +librarySystemDepends = [ +gmp +mpfr +]; +doHaddock = false; +doCheck = false; +homepage = "https://github.com/ekmett/rounded"; +description = "Correctly-rounded arbitrary-precision floating-point arithmetic"; +license = stdenv.lib.licenses.bsd3; + +}) {inherit (pkgs) gmp; inherit (pkgs) mpfr;}; "rss-conduit" = callPackage ({ mkDerivation @@ -66508,8 +67216,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "safecopy"; -version = "0.9.4.1"; -sha256 = "1476c8c135baaca93ba232495b8d2a86047954e7f4439eafa28ee0763a500e84"; +version = "0.9.4.3"; +sha256 = "787db1a56b7024ab5619b4f25af5379133f5f2a5e1a0657e66c8dfac1a131f08"; libraryHaskellDepends = [ array base @@ -66856,6 +67564,64 @@ homepage = "https://github.com/swift-nav/libsbp"; description = "SwiftNav's SBP Library"; license = stdenv.lib.licenses.lgpl3; +}) {}; +"sbv" = callPackage +({ + mkDerivation +, array +, async +, base +, containers +, crackNum +, deepseq +, directory +, filepath +, generic-deriving +, ghc +, mtl +, pretty +, process +, QuickCheck +, random +, reinterpret-cast +, stdenv +, syb +, template-haskell +, time +}: +mkDerivation { + +pname = "sbv"; +version = "7.12"; +sha256 = "dd8bcce40246257bb2de4db7d61695fd2e35b16c785b196a3f272f2bbc8471d1"; +enableSeparateDataOutput = true; +libraryHaskellDepends = [ +array +async +base +containers +crackNum +deepseq +directory +filepath +generic-deriving +ghc +mtl +pretty +process +QuickCheck +random +reinterpret-cast +syb +template-haskell +time +]; +doHaddock = false; +doCheck = false; +homepage = "http://leventerkok.github.com/sbv/"; +description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving"; +license = stdenv.lib.licenses.bsd3; + }) {}; "scalendar" = callPackage ({ @@ -67174,6 +67940,8 @@ mkDerivation { pname = "sdl2-gfx"; version = "0.2"; sha256 = "8c1e10b7a675d782cd650820c75c4ef9225718ad6aaa3f8db02e869b7720c50d"; +revision = "1"; +editedCabalFile = "1gdasf1rq7gszfhin521cni8bxfzanvssznfi8m2fkgwz6ichhpv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -67222,6 +67990,8 @@ mkDerivation { pname = "sdl2-image"; version = "2.0.0"; sha256 = "399742b2b7e64fe4e58c9d8a44ad29b2c355589233535238f8c9b371de6c26df"; +revision = "1"; +editedCabalFile = "0471p3d1ws5n7r072xgk38n3vzs6ijjkmpv1r05vxn6qninlnq6m"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -67266,6 +68036,8 @@ mkDerivation { pname = "sdl2-mixer"; version = "1.1.0"; sha256 = "0f4c15a1bda7b265923278641d686756292fc2a8f1c5ced7f98916cc98df0acd"; +revision = "1"; +editedCabalFile = "06h708gbvl5z590p6fn10ck6yxjzyjjbmvk6mxcwgygbj76sw2f8"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -67399,6 +68171,8 @@ mkDerivation { pname = "selda"; version = "0.2.0.0"; sha256 = "d226aff054c80864ffab2b50898a6109d0d8adeaee42f06074d4831a1a692ad1"; +revision = "1"; +editedCabalFile = "13iq6f81g5xicc2bb2xxxdhmbh5lkspcmq4bjcszp481z9v4kw3x"; libraryHaskellDepends = [ base bytestring @@ -67575,6 +68349,8 @@ mkDerivation { pname = "semigroups"; version = "0.18.5"; sha256 = "ab2a96af6e81e31b909c37ba65f436f1493dbf387cfe0de10b6586270c4ce29d"; +revision = "1"; +editedCabalFile = "1inqcxrzzs8xz60pvbmznyi6g6xwzpxv7p6dqlcwariz31grzvs1"; libraryHaskellDepends = [ base ]; @@ -67734,11 +68510,11 @@ license = stdenv.lib.licenses.mit; , fmt , formatting , hashable +, megaparsec , microlens , microlens-mtl , mtl , o-clock -, parsec , process , QuickCheck , quickcheck-instances @@ -67758,9 +68534,9 @@ pname = "serokell-util"; version = "0.9.0"; src = fetchgit { -url = "https://github.com/input-output-hk/serokell-util.git"; -sha256 = "0h4wcvp126w021bc2kglsbfywyvc9z3yf1sh1k4yy1an4ckh51jd"; -rev = "4ead9809e119483e7832da5f8224b0c4d4a2d5d6"; +url = "https://github.com/input-output-hk/serokell-util"; +sha256 = "11nhmikaqmhfs4cyhs3rq07bi4hmqyfg9vl7q8779h07i629zsz3"; +rev = "e592ae9b9387184519b393c066edbf8b4ed91737"; fetchSubmodules = true; }; @@ -67777,11 +68553,11 @@ exceptions fmt formatting hashable +megaparsec microlens microlens-mtl mtl o-clock -parsec process QuickCheck quickcheck-instances @@ -67949,8 +68725,8 @@ mkDerivation { pname = "servant-auth-client"; version = "0.3.3.0"; sha256 = "490ac57150b59c567ef567120a6704cfc2184f7be8e6edaab26ad818dee5b3df"; -revision = "1"; -editedCabalFile = "0jd1frgvghd9zp0rzzar9xxvj6qwg1l7f0zv7977rf6v930fqhw9"; +revision = "3"; +editedCabalFile = "1kzyqd9hg7xld5s8qpm76l9ym48z81j6ycdwp3lb0f1p2d3aagcd"; libraryHaskellDepends = [ base bytestring @@ -67985,8 +68761,8 @@ mkDerivation { pname = "servant-auth-docs"; version = "0.2.10.0"; sha256 = "adf3c33ce4134a78ae7a5c06092ea5812c99d4b942ff2dd685995eb3b2b53e48"; -revision = "2"; -editedCabalFile = "0309a6pc8jj24xwqmzj1yslgij9g212hnaqh2qkcvlm6k6riffil"; +revision = "3"; +editedCabalFile = "0in6rhgwn5idc2rsl4zbh6kkhxq471iczjd3i6ap60xg46ciymga"; setupHaskellDepends = [ base Cabal @@ -68095,8 +68871,8 @@ mkDerivation { pname = "servant-auth-swagger"; version = "0.2.10.0"; sha256 = "50a783639eb882fd5047d69245f7770817658814d8c409b547ebdddae05acd12"; -revision = "1"; -editedCabalFile = "105rniz4cmmwr0ynyv75s4ap1fgfwxy2k5mvvj66gwpvzmj55cnx"; +revision = "2"; +editedCabalFile = "1vr0qss87gi6r9z876v9vnmfhr4m58n5x44fgzpmjkn7wlh1i6m7"; libraryHaskellDepends = [ base lens @@ -68127,8 +68903,8 @@ mkDerivation { pname = "servant-blaze"; version = "0.8"; sha256 = "46ea88550123d765b2d09073370d0530a51878e7fdf2cf20b070be1f2f10ae94"; -revision = "1"; -editedCabalFile = "1sw72b1x6diyk13mwxfmv50nix0n2lf7cv55p4n2d4bs7r5388q3"; +revision = "2"; +editedCabalFile = "1cfla60vn4kk5gb7fawlp34jr2k6b2fprysq05561wdfv990x4bj"; libraryHaskellDepends = [ base blaze-html @@ -68159,8 +68935,8 @@ mkDerivation { pname = "servant-cassava"; version = "0.10"; sha256 = "9b2c5d906f3a4bb2767b2ce91f12a74e24adceadd296220b5d7216c5e1f3560e"; -revision = "3"; -editedCabalFile = "1asq4w9dbl0ccwqdpvkhbh5fkvwd73iqd09a776ynf0vq3k05kh6"; +revision = "5"; +editedCabalFile = "1hidradrcdcchbr0hn9y7y1bc0i0gxzfbganyy7p2z8ip2czddvj"; libraryHaskellDepends = [ base base-compat @@ -68204,6 +68980,8 @@ mkDerivation { pname = "servant-checked-exceptions"; version = "2.0.0.0"; sha256 = "a7f282857e56d5d1a59d055cf1936cab96a2cdc2f94a79ff736f7ef1cf56f688"; +revision = "1"; +editedCabalFile = "0h18x8gimmczgml4rj74kx3463pwrsyxl2vnd13ra5hj0q44d683"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -68254,6 +69032,8 @@ mkDerivation { pname = "servant-checked-exceptions-core"; version = "2.0.0.0"; sha256 = "aad3513403241bb06aadc605e6af88a5f3aaa0f1f208aafed6d69e15a23ab248"; +revision = "1"; +editedCabalFile = "1q2y4cri4h33cfdpgz95dczhvhmyrqajm7k6ypl3b8rw953qlzy7"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -68404,8 +69184,8 @@ mkDerivation { pname = "servant-dhall"; version = "0.1.0.1"; sha256 = "940eca05ad268137082478009c752c6333c0b1d92e57b13770046eeaac8b31fb"; -revision = "2"; -editedCabalFile = "1zdvk0cx8s1n107yx95vdv0xziwjmr1d6kypr36f1cqdvdh02jir"; +revision = "3"; +editedCabalFile = "13mq4pwffxqpjirb6rfhzd2xqhm0xyycl98h6kf4j0ic38g3saz1"; libraryHaskellDepends = [ base base-compat @@ -68705,6 +69485,8 @@ mkDerivation { pname = "servant-lucid"; version = "0.8.1"; sha256 = "6671d5d5e29b05911bb8855f42168839c2dbb8ee113a10cef6dd372fc267113d"; +revision = "1"; +editedCabalFile = "0jna96jy6nmhk6w5zxdd3qn3vlrnhnvh4s3f2bqkn3c0had5py7d"; libraryHaskellDepends = [ base http-media @@ -69116,6 +69898,8 @@ mkDerivation { pname = "servant-streaming"; version = "0.3.0.0"; sha256 = "980d486577658697891360479195ed493859e2279f76334101a45c880f7c5a4c"; +revision = "3"; +editedCabalFile = "04mc3k97sk0r90m8ca34gqpb2bz8yljp3j613xx7xz90sffqc1hq"; libraryHaskellDepends = [ base http-types @@ -69147,6 +69931,8 @@ mkDerivation { pname = "servant-streaming-client"; version = "0.3.0.0"; sha256 = "42e2b229fa37538466dafa1992ab735c8342801dc07e1fff2706d460345770c0"; +revision = "1"; +editedCabalFile = "07xkgnhi8aspnqms5gx67ssw5m595gda8yqypdg2q59wwc6ib68d"; libraryHaskellDepends = [ base bytestring @@ -69186,6 +69972,8 @@ mkDerivation { pname = "servant-streaming-server"; version = "0.3.0.0"; sha256 = "c6e0a846e0156e097bb6a60710009fb4935241a3e7ce5b12b867ae094d1f5053"; +revision = "1"; +editedCabalFile = "1xfx22a83xwq2bzv7gm3z9drd5hiq6wz7yyvfpjz1c2dcicwflvm"; libraryHaskellDepends = [ base bytestring @@ -69777,8 +70565,8 @@ mkDerivation { pname = "set-cover"; version = "0.0.9"; sha256 = "afebfd20c00ff68cd99c7e457d15542003228a56d98af63565549a77852f73e1"; -revision = "1"; -editedCabalFile = "0mcg15645maj1ymfrgs9ghi8n3hwwd72441zxcg9gn1w3pq7zsaw"; +revision = "2"; +editedCabalFile = "1jpg9iyq0mymdbq392nfmicwfmcmq5mg688ndmhvjx08ljdl54ha"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -70027,8 +70815,8 @@ license = stdenv.lib.licenses.asl20; mkDerivation { pname = "shakespeare"; -version = "2.0.19"; -sha256 = "b434eccf29718171a1082d62497e00d3f29105c03c5bdae7dd8bf01f6fab3640"; +version = "2.0.20"; +sha256 = "f50ebff8e585851a1e3af36885d6a6d1218b19dcde1d7459f02272d6925d9e03"; libraryHaskellDepends = [ aeson base @@ -70262,8 +71050,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "shortcut-links"; -version = "0.4.2.0"; -sha256 = "1e6b75c5e94fddf9e2e665821ac70f5083e5d40d1fd55813e94943ce02335027"; +version = "0.4.2.1"; +sha256 = "0d36ecfabc8e2d3a4c0015b521b6cb8efa8469bbd518a509326f07a3aa24deff"; libraryHaskellDepends = [ base text @@ -70311,8 +71099,8 @@ mkDerivation { pname = "show-combinators"; version = "0.1.0.0"; sha256 = "22c45747c79055b5310c1da2af717bffded65ea39479c61783f8c1a22e953086"; -revision = "1"; -editedCabalFile = "09zd78jap17ralla3833gwv6bwmh93bpjgdshkyf7j06xg2c1mq8"; +revision = "2"; +editedCabalFile = "003ry21snn1b9ip5c1z62hzdy24ckbbb5zf637nxcf9qj07z2xsz"; libraryHaskellDepends = [ base ]; @@ -70487,6 +71275,8 @@ mkDerivation { pname = "simple-sendfile"; version = "0.2.27"; sha256 = "f68572592099a2db3f7212ac7d133447ae5bbb2605285d3de1a29a52d9c79caf"; +revision = "2"; +editedCabalFile = "1590hn309h3jndahqh8ddrrn0jvag51al8jgb2p5l9m5r1ipn3i5"; libraryHaskellDepends = [ base bytestring @@ -70774,8 +71564,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "skylighting"; -version = "0.7.4"; -sha256 = "e298417c8044e7e3f2c79bdef23ad7f30ae66855ebd8f545ae5a939a83d82c70"; +version = "0.7.5"; +sha256 = "7de100e42e7dac3687372f85225a6d905d534f75990c5a25c6e640acf0ad1320"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -70835,8 +71625,8 @@ license = stdenv.lib.licenses.gpl2; mkDerivation { pname = "skylighting-core"; -version = "0.7.4"; -sha256 = "80ba354586b80cde6b1756c6eefe13f324cc6c0e22c793be53fe15cb126e8dab"; +version = "0.7.5"; +sha256 = "f706a2eb5d37d1323525d9c4944da2ad8d29c1ccf7d0ae7b433695d981413889"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -70891,8 +71681,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "slack-web"; -version = "0.2.0.7"; -sha256 = "3d2996e1881357449ddb5ce98a59424d612ea45d076ddc1a02182ed28462a8c9"; +version = "0.2.0.9"; +sha256 = "421d2cd3a1626b637224e94c800312673b1a0f0c980d7346c0061e71bb8287d3"; libraryHaskellDepends = [ aeson base @@ -71029,6 +71819,8 @@ mkDerivation { pname = "smtp-mail"; version = "0.1.4.6"; sha256 = "86dacbef87a2519222a1165b49401a437887a249f5bfd63a99702198dad214bc"; +revision = "1"; +editedCabalFile = "1lvzami2vzrkgz5na71k1yi7346xdarxm0sbi6alq3wbpj1raakq"; libraryHaskellDepends = [ array base @@ -71381,6 +72173,8 @@ mkDerivation { pname = "soap-tls"; version = "0.1.1.4"; sha256 = "ce8b33cd4bb2cc60093df4de231967edd789fd9da44a261a539a221116853a14"; +revision = "1"; +editedCabalFile = "11djy824gaw3cbsvphq263hxjrn1b3v5p1kdivsvlyn7q9bgvms9"; libraryHaskellDepends = [ base configurator @@ -71416,6 +72210,8 @@ mkDerivation { pname = "socket-activation"; version = "0.1.0.2"; sha256 = "b99e7b4f296cd462aac84e5bb61fb02953e2080d1351e9e10a63d35dc34eb43b"; +revision = "1"; +editedCabalFile = "0bvm8ik8fp0v5gjw6q4h767zgs1i4ydckdypvqa85sarc985hkmp"; libraryHaskellDepends = [ base network @@ -71492,6 +72288,8 @@ mkDerivation { pname = "socks"; version = "0.5.6"; sha256 = "fa63cd838025e18864c59755750c0cfc4ea76e140a542f07a5c682488ec78438"; +revision = "1"; +editedCabalFile = "19f6yzalxbvw0zi1z8wi0vz7s21p5anvfaqsaszppnkgk6j6nnvn"; libraryHaskellDepends = [ base bytestring @@ -72864,8 +73662,8 @@ mkDerivation { pname = "step-function"; version = "0.2"; sha256 = "d260fcb72bd3afe3c2b0a80f3f3a5c7afae63d98138d137a80ed8ba131fee7d5"; -revision = "1"; -editedCabalFile = "03ga9vwaxsf0c73fciavkm925l7lkgya1a6xghyb8ainrav0bfq4"; +revision = "2"; +editedCabalFile = "074399mj4p0sk49rqc9a3fikpsly95mndnmm71ya7wy34nxyafzv"; libraryHaskellDepends = [ base base-compat-batteries @@ -73138,15 +73936,17 @@ license = stdenv.lib.licenses.bsd3; ({ mkDerivation , base +, base-orphans , stdenv }: mkDerivation { pname = "storable-complex"; -version = "0.2.2"; -sha256 = "ab076f15c47a2a324a2119c8feee0a78e1d2af488d0d24b7113b4bb7eee47c06"; +version = "0.2.3.0"; +sha256 = "9af499b2b19b2f173f97db37f843938efd2c59c30285e436564aefd2aa5bdc3a"; libraryHaskellDepends = [ base +base-orphans ]; doHaddock = false; doCheck = false; @@ -73465,6 +74265,8 @@ mkDerivation { pname = "streaming"; version = "0.2.2.0"; sha256 = "5a6b7744695a2651e9835789a7c4ce48dbd5f13ee99f35f63261f9501ce1cd11"; +revision = "1"; +editedCabalFile = "1sq8blxh4s1lsvxkc64x7drxwn75kszxicjhvw4cg505fp9bfc7y"; libraryHaskellDepends = [ base containers @@ -73497,8 +74299,8 @@ mkDerivation { pname = "streaming-attoparsec"; version = "1.0.0"; sha256 = "ff28925269ed98f03ef10a482980030dd7c8ef4c05ef6e32d147db9331df6102"; -revision = "1"; -editedCabalFile = "0ssikp3ckvlgh9px4v6ppjlyi7ch319j0l3s9a5z07j6fg3j4wkp"; +revision = "2"; +editedCabalFile = "07hqs8nn1rhsqckqmw46yp19kd0vk35q139al6yq0k1dzpvsrcsx"; libraryHaskellDepends = [ attoparsec base @@ -73680,12 +74482,14 @@ mkDerivation { pname = "streamproc"; version = "1.6.2"; sha256 = "e76effaaff83e6a066df949415db109b405bda0aaeb95f0710906c65892584f2"; +revision = "1"; +editedCabalFile = "19c51gks028x8mnywkx1nz0s6bwn2mxs5ddmaj2q8n9l5pvfkcgs"; libraryHaskellDepends = [ base ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/peti/streamproc"; +homepage = "https://github.com/peti/streamproc"; description = "Stream Processer Arrow"; license = stdenv.lib.licenses.bsd3; @@ -74034,8 +74838,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "strive"; -version = "5.0.6"; -sha256 = "67a4db92a419f027e4af0545f8ecb72089eff138c008da0e91e5eb650d4aee36"; +version = "5.0.7"; +sha256 = "6f16cd578bff7cafc0cf923477effc880fe5eb49344a88da329a3297ed2fbe43"; libraryHaskellDepends = [ aeson base @@ -74103,7 +74907,6 @@ license = stdenv.lib.licenses.bsd3; , bytestring , containers , directory -, fetchgit , file-embed , filepath , haskell-src-exts @@ -74119,14 +74922,7 @@ mkDerivation { pname = "stylish-haskell"; version = "0.9.2.2"; -src = fetchgit { - -url = "https://github.com/jaspervdj/stylish-haskell"; -sha256 = "070lwddjvawaf42p8mvxl6fam44nhn98nc85gsk5688fygccv5qw"; -rev = "f253f37362be840bafe2c82a8d7fb284046fda48"; -fetchSubmodules = true; - -}; +sha256 = "5d59c8df8f0cf61a7b3131e757c4df10fd8d6a4361bb6b68de489a8b3b1146ff"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -75191,8 +75987,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "tasty-ant-xml"; -version = "1.1.4"; -sha256 = "a88aee8127f424155d8cb0237b9c378cfba935579fb2d51fe5d0c009d2d20f6c"; +version = "1.1.5"; +sha256 = "62ccee94bc5c3d7c6ed99037788262d8d971eeac487fe43b06760f969430a5df"; libraryHaskellDepends = [ base containers @@ -75227,8 +76023,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "tasty-dejafu"; -version = "1.2.0.7"; -sha256 = "8c0bbf8636fa8c00c450d051278ee7ba81488cd90a84bca4e285d29cb85ae6f1"; +version = "1.2.0.8"; +sha256 = "24b7cfb2c9d59b878b785ab3c261faa533801059effbfadc1feade2d781a296d"; libraryHaskellDepends = [ base dejafu @@ -75367,8 +76163,8 @@ mkDerivation { pname = "tasty-hedgehog"; version = "0.2.0.0"; sha256 = "5a107fc3094efc50663e4634331a296281318b38c9902969c2d2d215d754a182"; -revision = "5"; -editedCabalFile = "1ykmjb00whqq1hap4l8d4187qflxi6xdnm86czxrzmz4l3lj33gr"; +revision = "6"; +editedCabalFile = "0d7s1474pvnyad6ilr5rvpama7s468ya9ns4ksbl0827z9vvga43"; libraryHaskellDepends = [ base hedgehog @@ -75397,10 +76193,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "tasty-hspec"; -version = "1.1.5"; -sha256 = "db0cdcf71d534cfa32a1698f1eb6be03192af09a5dd63177b697bc4ca8b81154"; +version = "1.1.5.1"; +sha256 = "fe889ec0f7b3991c46a07d9ff9cf09608a73a18f434a7480d2a09c79e56f3345"; revision = "3"; -editedCabalFile = "14198y7w9y4h36b6agzmsyappkhz4gmmi6nlzj137z5siwic7igm"; +editedCabalFile = "1wgz3z5bnq5qml8d0i18gvz30dmmax3686lmqz3vf4hxd3vqfkpj"; libraryHaskellDepends = [ base hspec @@ -75530,6 +76326,45 @@ homepage = "https://github.com/feuerbach/tasty"; description = "QuickCheck support for the Tasty test framework"; license = stdenv.lib.licenses.mit; +}) {}; +"tasty-rerun" = callPackage +({ + mkDerivation +, base +, containers +, mtl +, optparse-applicative +, reducers +, split +, stdenv +, stm +, tagged +, tasty +, transformers +}: +mkDerivation { + +pname = "tasty-rerun"; +version = "1.1.13"; +sha256 = "f7e52d160419b441b23f2438088f7b37ac85808b0faab081876f7fede288c7d1"; +libraryHaskellDepends = [ +base +containers +mtl +optparse-applicative +reducers +split +stm +tagged +tasty +transformers +]; +doHaddock = false; +doCheck = false; +homepage = "http://github.com/ocharles/tasty-rerun"; +description = "Run tests by filtering the test tree depending on the result of previous test runs"; +license = stdenv.lib.licenses.bsd3; + }) {}; "tasty-silver" = callPackage ({ @@ -75802,8 +76637,8 @@ mkDerivation { pname = "tdigest"; version = "0.2.1"; sha256 = "d46e38067c4d064f3c9c77219f570ba4e9dbbd7273a5edc4860610cde4afb84e"; -revision = "1"; -editedCabalFile = "1jrq22j9jbvx31pspwjvyb539gix7vfb8cinqkkb2abmr0jrhibn"; +revision = "2"; +editedCabalFile = "1q517siz4l55l7ssrbc3rm0szf41k7wy4p26lch03i57lzldf2hf"; setupHaskellDepends = [ base Cabal @@ -76076,8 +76911,8 @@ mkDerivation { pname = "test-framework"; version = "0.8.2.0"; sha256 = "f5aec7a15dbcb39e951bcf6502606fd99d751197b5510f41706899aa7e660ac2"; -revision = "1"; -editedCabalFile = "1af61pnf2vrkvs3hcqla5ddsrd0hd2pylv6l545yn3dcvl665rcc"; +revision = "3"; +editedCabalFile = "0qg8zr0ga2kq8qrs9vckxmk11zrp105cbybcb9ra3dk4linngjw3"; libraryHaskellDepends = [ ansi-terminal ansi-wl-pprint @@ -76141,6 +76976,8 @@ mkDerivation { pname = "test-framework-quickcheck2"; version = "0.3.0.5"; sha256 = "c9f678d4ec30599172eb887031f0bce2012b532daeb713836bd912bff64eee59"; +revision = "1"; +editedCabalFile = "1vmpk70h1594h9s216d3ngkb399fpny1d3sh4gg0vrc75p4as68d"; libraryHaskellDepends = [ base extensible-exceptions @@ -76312,6 +77149,8 @@ mkDerivation { pname = "text"; version = "1.2.3.1"; sha256 = "8360624d5d01f278da320eebd16fd5d6f366b7f876d0ad424041d58e5e1147a6"; +revision = "2"; +editedCabalFile = "0ax6h9mvs4567nzi936jkd8f94bi8jnxis4wikjzyaxqfwm5zc6f"; libraryHaskellDepends = [ array base @@ -76642,8 +77481,8 @@ mkDerivation { pname = "text-short"; version = "0.1.2"; sha256 = "b3f2b867d14c7c2586ea580028606b6662293ad080726d5241def937e5e31167"; -revision = "1"; -editedCabalFile = "00w77idkh44m88vivkqsys0y1bbxrflh06yq66liq0wgjhhzdppj"; +revision = "2"; +editedCabalFile = "106p7c0399zxdlh9f9qkgy7g2gp3bxqdpy6m6lnfhzi0pm5y8mks"; libraryHaskellDepends = [ base binary @@ -76691,8 +77530,8 @@ mkDerivation { pname = "text-show"; version = "3.7.4"; sha256 = "3efb643349e288f0d92dc2fd26a76d38d08686e827db1d99df707932c9b91e19"; -revision = "2"; -editedCabalFile = "10hmmrm5qjc1lhrqgbh7yyyij9v0rpsv9fakynm5myfcc2ayif82"; +revision = "3"; +editedCabalFile = "1r2g3g0bcl7xgxw35bhp6a9n1rdz3bf1qhiqb2hhjscmm2szq3jd"; libraryHaskellDepends = [ array base @@ -76900,6 +77739,8 @@ mkDerivation { pname = "tfp"; version = "1.0.0.2"; sha256 = "9a817090cb91f78424affc3bfb6a7ea65b520087b779c9fd501fc9779e654cda"; +revision = "1"; +editedCabalFile = "062rvn5ba3x5fjhnqs8lid6mra3vqz5ikaixck1mlmafkqmxhvw9"; libraryHaskellDepends = [ base utility-ht @@ -76923,10 +77764,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "th-abstraction"; -version = "0.2.8.0"; -sha256 = "ca136bd3fa76230a288ba0a3a65c36a555f32c179369a258b4a04d2f30e12758"; -revision = "1"; -editedCabalFile = "0yr4bj9ypbls0ysmwrgn2nsjb1xpsb12bjaiwbkzp6nf3kljwnnv"; +version = "0.2.10.0"; +sha256 = "c9dbffcaa4ed04f257427e61da135797190b572d4e37662f7821844cbd2114af"; libraryHaskellDepends = [ base containers @@ -77067,6 +77906,8 @@ mkDerivation { pname = "th-lift"; version = "0.7.11"; sha256 = "d53cd1479d3cf35c513095f3954eee539e73c55266cec5f1fa0a82d53f30238c"; +revision = "1"; +editedCabalFile = "0whppp0p9df3fphv6pyg8f70bnm2kpyb3ylznknrklsl5vn2c49d"; libraryHaskellDepends = [ base ghc-prim @@ -77389,8 +78230,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "thread-hierarchy"; -version = "0.3.0.0"; -sha256 = "e8879653bbe54b5134eed23186f98688c4e9819ce9ef4f2e2d01d0f1ae219a18"; +version = "0.3.0.1"; +sha256 = "8181448452c759b660f6d7c8775fd99479ccc382cd291460903b15574e5d5c34"; libraryHaskellDepends = [ base containers @@ -77850,6 +78691,8 @@ mkDerivation { pname = "timeit"; version = "2.0"; sha256 = "a14df4e578db371e5c609f0784209144545f9cae90026d24a3398042f7c591ea"; +revision = "1"; +editedCabalFile = "0d4vjg48xyqjmydnjqjxica0zr30vgb91b3vv75cig686ikpjmq7"; libraryHaskellDepends = [ base ]; @@ -78118,6 +78961,8 @@ mkDerivation { pname = "tls"; version = "1.4.1"; sha256 = "bbead1afc0b808bd5cff7bddaeae84ade37f18bbe72bd78d45a2fa4ac41908f8"; +revision = "1"; +editedCabalFile = "0qk07miindqvynhgsqj8jjk1d6i95lbgwipanwnn4vh1707z8xhv"; libraryHaskellDepends = [ asn1-encoding asn1-types @@ -78468,6 +79313,8 @@ mkDerivation { pname = "transformers-bifunctors"; version = "0.1"; sha256 = "3c25d3d76361f62b4c7c37d4bc4b7497af691d000fcd8e5fe9cbb3544d284807"; +revision = "1"; +editedCabalFile = "1vjyk2ldwfi2pkvk79p37ii5xgg1399kxqhkq3l4wvag4j5p4afs"; libraryHaskellDepends = [ base mmorph @@ -78475,7 +79322,7 @@ transformers ]; doHaddock = false; doCheck = false; -homepage = "https://github.com/jystic/transformers-bifunctors"; +homepage = "https://github.com/jacobstanley/transformers-bifunctors"; description = "Bifunctors over monad transformers"; license = stdenv.lib.licenses.bsd3; @@ -78543,8 +79390,8 @@ mkDerivation { pname = "transformers-lift"; version = "0.2.0.1"; sha256 = "0bd8bf23fb29874daf9ff990bf25035e21208cfa292f9f18e8cfdb0b4b1ee09d"; -revision = "1"; -editedCabalFile = "1dy9vg0drkm9ria80hlfx6v72ji2fwmv3ik7lryv7i7hk0bdzk8l"; +revision = "3"; +editedCabalFile = "0rkbjlpn460gn93qr0l7025ggkgj46j6pkcil6m2chkzk91cpk9i"; libraryHaskellDepends = [ base transformers @@ -78609,10 +79456,10 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "tree-diff"; -version = "0.0.1"; -sha256 = "bfe23e4c17c0cdbffa9f159b7adaaeb20e48575b3b5bda591c5e025118213b11"; -revision = "6"; -editedCabalFile = "1wyhygrpqphxzzwlrk6nl4h5xbyx6zi0y34i1nxvsy726fl5idai"; +version = "0.0.2"; +sha256 = "f8690bd14977f66292759f432a9f0d1b15f00b37001e7c4ea1a04c3fa38a9b7e"; +revision = "2"; +editedCabalFile = "07pz7mhzvh7iwgn2rvw29valfdm4y845zqqffxb89ywbb6gnm8x8"; libraryHaskellDepends = [ aeson ansi-terminal @@ -78703,6 +79550,8 @@ mkDerivation { pname = "trifecta"; version = "2"; sha256 = "53972fe9d206eab6ae1a654fe8c57274f01b373b0c8b3882ef01e962226af643"; +revision = "2"; +editedCabalFile = "1ihw0dm0sjn7cql6rb3y0gb5kxy1ca3ggflm4lxlmhm3gfrj2sxc"; setupHaskellDepends = [ base Cabal @@ -78950,8 +79799,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "turtle"; -version = "1.5.12"; -sha256 = "b3686fca906a1bf14a153b6c201d0affa71091a7fe095326bacf11a39f7e4c41"; +version = "1.5.13"; +sha256 = "0f06763f7a50b19862bd048e9387ddc441f085c5e1aa3a392322210a38f44484"; libraryHaskellDepends = [ ansi-wl-pprint async @@ -79103,8 +79952,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "type-of-html"; -version = "1.4.0.1"; -sha256 = "e3992f60601f8624a13cb686d400f9be843e33c20223a2ce7af51e85f3bc92ad"; +version = "1.4.1.0"; +sha256 = "bb21ad768625b7e140c4f0e199caf3b59388c0b6f94456a56e87efe896ce8915"; libraryHaskellDepends = [ base bytestring @@ -79206,6 +80055,8 @@ mkDerivation { pname = "typed-process"; version = "0.2.3.0"; sha256 = "c0dea5591a4730d151d5c146685d0fa3db1f390d2a63be70a981209e58de6648"; +revision = "1"; +editedCabalFile = "05mg8cggrdvplb7l3rgdfrn2rnrbxx394qi37n0ldfr6v3jirf0p"; libraryHaskellDepends = [ async base @@ -79313,8 +80164,8 @@ license = "GPL"; mkDerivation { pname = "tz"; -version = "0.1.3.1"; -sha256 = "0b54729c7b60e90e00ee8e78190d4e86b3fb02d24ef4e393383df800faccfff9"; +version = "0.1.3.2"; +sha256 = "f0d066d0169f283b199193d8825aa56de6e3818cd85d8979791c0e7504bf654c"; libraryHaskellDepends = [ base binary @@ -79348,10 +80199,8 @@ license = stdenv.lib.licenses.asl20; mkDerivation { pname = "tzdata"; -version = "0.1.20180501.0"; -sha256 = "85d864557ef05f3b0d7e0e72f166bfc8eb617a7fbfcb4fc223989d6ceadcdf5a"; -revision = "1"; -editedCabalFile = "19iqfzmh8xvd3cqlr1lp673232gk59z335xqbv18d4yy5qxc2fj0"; +version = "0.1.20181026.0"; +sha256 = "ee99daf34ed04513ec69d4d97b719f0f8adbc1a1a2b12b3f217898c59a0fa32c"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -79658,8 +80507,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "unicode-transforms"; -version = "0.3.4"; -sha256 = "829eaccba7d2e3d642d0cf60bbab403a6a5673db64284c02abf3ee3e8d5c0852"; +version = "0.3.5"; +sha256 = "c9f7d138ab43ed2e11de5973b0bd771c8f5c14cc0d87d3fbd1c6980c176fa03e"; libraryHaskellDepends = [ base bitarray @@ -79716,6 +80565,8 @@ mkDerivation { pname = "union"; version = "0.1.2"; sha256 = "63e9dc2901a7d857e278445ca2b03bb869ecb01264206a14319d073e39dd8ec4"; +revision = "2"; +editedCabalFile = "170dhg4z4jzi50nh4xx75r9k8zz5br7j2iqjjw2r1dx29ajqbcw9"; libraryHaskellDepends = [ base deepseq @@ -79772,6 +80623,8 @@ mkDerivation { pname = "uniplate"; version = "1.6.12"; sha256 = "fcc60bc6b3f6e925f611646db90e6db9f05286a9363405f844df1dc15572a8b7"; +revision = "1"; +editedCabalFile = "0gsrs2mk58jg3x36dyzxi4y46isd5p6q0rd6m9l834h5r7ds6a54"; libraryHaskellDepends = [ base containers @@ -79799,8 +80652,8 @@ mkDerivation { pname = "uniprot-kb"; version = "0.1.2.0"; sha256 = "d40c80522f9e70e6fe97234f362e503736ae9f520f1e10e9ab249a5cad750642"; -revision = "1"; -editedCabalFile = "0kvw9mzgjz6m1sslywn09n4axkjnwqpi4c5p00p9c81mr9fpbild"; +revision = "4"; +editedCabalFile = "1g4qds20lwsbn5hqrgbhb4yd5w5vx2gkw47mjvxr8z8nj20g2pii"; libraryHaskellDepends = [ attoparsec base @@ -79853,8 +80706,8 @@ mkDerivation { pname = "unique"; version = "0"; sha256 = "e3fb171b7b1787683863934df0fc082fb47c0da6972bb1839c2ee8ceb64a0a90"; -revision = "1"; -editedCabalFile = "0pq3a5y8ddgd37x21vafwxpyi079ir7k9g96y99pygmxwibkg4v8"; +revision = "2"; +editedCabalFile = "0ydjjd6j7gr4mibky6j5rqwhy9frvfii0sr4g8shaxnph3y0kb6b"; libraryHaskellDepends = [ base ghc-prim @@ -79979,8 +80832,8 @@ mkDerivation { pname = "universe-instances-extended"; version = "1.0.0.1"; sha256 = "665b272701b16a6bb8d40a5396aa1dcb038f002452ebdc29d353e3be2070c997"; -revision = "2"; -editedCabalFile = "1di3jk3ciikjrxzr76i0mqqza26mclnbxxak7ybkk4l06yqanj38"; +revision = "3"; +editedCabalFile = "1f7mzwn97kmnm1p1hscz5mzly700q2pw5awwdzzsxfkxv3law7xn"; libraryHaskellDepends = [ adjunctions base @@ -80084,9 +80937,9 @@ pname = "universum"; version = "1.2.0"; src = fetchgit { -url = "https://github.com/input-output-hk/universum.git"; -sha256 = "12ppiszywj0dsspwlhb8bzhsrlgszk8rvlhcy8il3ppz99mlnw5g"; -rev = "7f1b2483f71cacdfd032fe447064d6e0a1df50fc"; +url = "https://github.com/input-output-hk/universum"; +sha256 = "127bs29zpjcc40777dv7figk05gd00b9ja57sp11w440qr5h72hk"; +rev = "15f7db758ff5a24b874de2247f6f7a4576562da5"; fetchSubmodules = true; }; @@ -80153,13 +81006,15 @@ mkDerivation { pname = "unix-compat"; version = "0.5.1"; sha256 = "a39d0c79dd906763770b80ba5b6c5cb710e954f894350e9917de0d73f3a19c52"; +revision = "1"; +editedCabalFile = "0c4ak3y72nhv3nf025cyfi1dri2wjmsal3icjwj0aczmlb0imwrd"; libraryHaskellDepends = [ base unix ]; doHaddock = false; doCheck = false; -homepage = "http://github.com/jystic/unix-compat"; +homepage = "http://github.com/jacobstanley/unix-compat"; description = "Portable POSIX-compatibility layer"; license = stdenv.lib.licenses.bsd3; @@ -80209,10 +81064,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "unliftio"; -version = "0.2.8.1"; -sha256 = "bf796b2cb10be12fd736723faebd093e5298d5ec11a3b77b99ec762beacf68a3"; -revision = "1"; -editedCabalFile = "1zx2h1mnjcjszjdchg17gqrnj3d56x46947jm92snmdjw8x231wg"; +version = "0.2.9.0"; +sha256 = "ff6596a932d1b52b409739fd7bbc07234b484cc72f459f2515b27c2b55cd39b8"; libraryHaskellDepends = [ async base @@ -80245,8 +81098,8 @@ mkDerivation { pname = "unliftio-core"; version = "0.1.2.0"; sha256 = "24c38b3d610ca2642ed496d1de3d7b6b398ce0410aa0a15f3c7ce636ba8f7a78"; -revision = "1"; -editedCabalFile = "0s6xfg9d0i3sfil5gjbamlq017wdxa69csk73bcqjkficg43vm29"; +revision = "2"; +editedCabalFile = "0jqrjjbgicx48wzcjxs1xmih48ay79rhmrz6081dldlfxynli6vz"; libraryHaskellDepends = [ base transformers @@ -80774,8 +81627,8 @@ mkDerivation { pname = "uuid-types"; version = "1.0.3"; sha256 = "9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd"; -revision = "1"; -editedCabalFile = "0iwwj07gp28g357hv76k4h8pvlzamvchnw003cv3qk778pcpx201"; +revision = "2"; +editedCabalFile = "1lmlmng4lph57cljga3r9jy2axdls5mllsb2xzcwy2a34wgidarc"; libraryHaskellDepends = [ base binary @@ -81215,10 +82068,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "vector"; -version = "0.12.0.1"; -sha256 = "b100ee79b9da2651276278cd3e0f08a3c152505cc52982beda507515af173d7b"; -revision = "3"; -editedCabalFile = "0y5rh8k710i2a3p1h2rghvr5cfg78p5h0kbfi7ifxqqf6pzlyr1x"; +version = "0.12.0.2"; +sha256 = "52e89dacaff10bedb8653181963cae928f9674a099bb706713dae83994bbc0f3"; libraryHaskellDepends = [ base deepseq @@ -81442,6 +82293,8 @@ mkDerivation { pname = "vector-sized"; version = "1.0.4.0"; sha256 = "64be9a8eb50a7ee912b2f7429fc1eb9184283a2b09a9d19fbc6de3e90bf3b9e5"; +revision = "1"; +editedCabalFile = "0vahkbzg745h8v2qby6q3k7f3ifqi8737pw4dqzps1qacnamwcmy"; libraryHaskellDepends = [ adjunctions base @@ -81654,8 +82507,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "viewprof"; -version = "0.0.0.23"; -sha256 = "864d242f8080ebdda7b4b3ac4b827703a0630111fd34615f9a1adafd2dddb15b"; +version = "0.0.0.26"; +sha256 = "8d849f457511229dbc0b4378ef7283622ffb7f9fae3c54680a589611ce08cd86"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -81872,6 +82725,8 @@ mkDerivation { pname = "vty"; version = "5.21"; sha256 = "5a79b8b5f3a2ead0db01cfbc34e145cfa8ff36315f0bb075e6d364ae0a937a5b"; +revision = "1"; +editedCabalFile = "18dyham92ksdvglmn8h955h6rq3pkyxi6bcgxg7jp3iwryz4zkja"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -82199,6 +83054,8 @@ mkDerivation { pname = "wai-extra"; version = "3.0.24.3"; sha256 = "41e8f93ff03947623f5b447c71806f07819e1006f8267c84fd050e89fbafc439"; +revision = "1"; +editedCabalFile = "16gcs6ppr46vkf534nqir1b9rf63yhxnvyjp8lvk5pawmavgg3j1"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -82258,6 +83115,8 @@ mkDerivation { pname = "wai-handler-launch"; version = "3.0.2.4"; sha256 = "0e9d9c61310890380dc87807ba1285bc1ab185914be6367ea4bb0a05d3df2900"; +revision = "1"; +editedCabalFile = "1mjxbzw3a5wybcp8s4x05rx91p2qaabpfci6w2k6p6nw4rjvfijv"; libraryHaskellDepends = [ async base @@ -82581,8 +83440,8 @@ mkDerivation { pname = "wai-middleware-static"; version = "0.8.2"; sha256 = "0be4e9fd5252d526334e4e5885a2a75269aaaad560282b5c383c49e4d855befc"; -revision = "1"; -editedCabalFile = "0n7i81jrjsrav8bpg31avrd18vh95l5z6bfj4fqkrdj4h1v6armi"; +revision = "2"; +editedCabalFile = "17vq38dh7x1kqzfwla1s0rldd5hzm5mcrx49sjlzy8b66gd2n3ac"; libraryHaskellDepends = [ base bytestring @@ -82634,6 +83493,8 @@ mkDerivation { pname = "wai-middleware-throttle"; version = "0.3.0.0"; sha256 = "7befb5ed84c06515dcc45891e0d8ef4f051e8d5f4411c0b0f85015071876109b"; +revision = "1"; +editedCabalFile = "1gf86jzygabwaakjk2lvf7036irjfh33x23kh171faf5rdj91ndb"; libraryHaskellDepends = [ base bytestring @@ -82678,8 +83539,8 @@ mkDerivation { pname = "wai-middleware-travisci"; version = "0.1.0"; sha256 = "bbc9f2fea4c0ee3d9a73fd13dd1a2a7ef85fc294bd311ed519c1e41a1fada828"; -revision = "1"; -editedCabalFile = "0fd99j9lyb562p3rsdb8d7swg31bwahzhgjm6afijc5f6i5awcw3"; +revision = "2"; +editedCabalFile = "0j1k2y75gwbny72zf5nrwzanh7sn2plscnrjd4hw5npccxi4dchx"; libraryHaskellDepends = [ aeson base @@ -82986,6 +83847,8 @@ mkDerivation { pname = "warp"; version = "3.2.25"; sha256 = "7e0b8f2c6f156b5969832923e16fbf87cd1ac20678c5c03ce77cb094f44a8566"; +revision = "1"; +editedCabalFile = "0q0l9s1c9m20g7j6lgrj7d3l0awr3hc35bvm95an61hg18cilngj"; libraryHaskellDepends = [ array async @@ -83109,8 +83972,8 @@ mkDerivation { pname = "wave"; version = "0.1.5"; sha256 = "250a08b0c36870fb7fd0de7714818784eed0c4ff74377746dc1842967965fe0f"; -revision = "1"; -editedCabalFile = "1wvgxay0r5rpcc7yxkznxxcp1za0ifxvk87w0xrilxgb35r3izz8"; +revision = "2"; +editedCabalFile = "0zs0mw42z9xzs1r935pd5dssf0x10qbkhxlpfknv0x75n2k0azzj"; enableSeparateDataOutput = true; libraryHaskellDepends = [ base @@ -83165,8 +84028,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "web-plugins"; -version = "0.2.9"; -sha256 = "e63bfd7f666b40c7ff962a070c64dc5bef4a5c490af745fa7ee8f964284a7a50"; +version = "0.2.9.1"; +sha256 = "02ef4ea3d0fd52a6cbef8d63a516f6bacc47c8223c7a4ab4e834d6b211758b8f"; libraryHaskellDepends = [ base containers @@ -83748,8 +84611,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "wide-word"; -version = "0.1.0.6"; -sha256 = "1d8c0998b70af7b850a9d22642a50c6334ec47acdb8a31a90de7533d4b6b7c78"; +version = "0.1.0.7"; +sha256 = "2d7796a5987af65f246e12fac22d1695ea2f74a6069588f220b86bdd75a80a63"; libraryHaskellDepends = [ base deepseq @@ -84016,10 +84879,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "wizards"; -version = "1.0.2"; -sha256 = "4ba12c726d60688b8173db3891aa1dce7f57c6364c40ba2f1c2c8d16404bd30b"; -revision = "1"; -editedCabalFile = "15vwynd5v6xm92dxkxf125grd8sv599n5bnj92qqmhlc89psxhxk"; +version = "1.0.3"; +sha256 = "05650d7bf6dd0e6b87d0d7da6fb003601ce5d7b1f3d69571127ec3c9425b9bb2"; libraryHaskellDepends = [ base containers @@ -84364,8 +85225,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "wreq"; -version = "0.5.2.1"; -sha256 = "b3d069b38d709becdd5ebc75859ff46833419d25f6168367e672243f29491237"; +version = "0.5.3.1"; +sha256 = "e33b4ea7a4008ed933744de13d98f6e8d0a54b8778ecf4e7c78812d4fb124ec4"; +revision = "2"; +editedCabalFile = "1rjz4012vp9q7a3szpm8a7rnn62d5cbbp1pp3qwfyi1fgyd5rp6c"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ @@ -84451,6 +85314,8 @@ mkDerivation { pname = "writer-cps-full"; version = "0.1.0.0"; sha256 = "ba51df5149470be6d70fd179f2af4cae30824a3a63528f1549a97f57610a5e95"; +revision = "1"; +editedCabalFile = "01zizhxk6kk5z3sqv5r7dp2yxbv5q87h5wgb5kbss60ncf042661"; libraryHaskellDepends = [ base writer-cps-lens @@ -84650,8 +85515,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "wuss"; -version = "1.1.10"; -sha256 = "097c1186006e8a4168a7ba868d6bffb0cbbb80052e8f552de9cda23572a59550"; +version = "1.1.11"; +sha256 = "e06ee98d38d2083f76d82b21ac6d249610102e8f8a828c8a04ab950c507c98d6"; libraryHaskellDepends = [ base bytestring @@ -84714,6 +85579,8 @@ mkDerivation { pname = "x509"; version = "1.7.5"; sha256 = "b1b0fcbb4aa0d749ed2b54710c2ebd6d900cb932108ad14f97640cf4ca60c7c8"; +revision = "1"; +editedCabalFile = "1z98llpggldy4yb7afcsn3r3q4vklvx2pqyrhy9fir5y2yd5l601"; libraryHaskellDepends = [ asn1-encoding asn1-parse @@ -84755,6 +85622,8 @@ mkDerivation { pname = "x509-store"; version = "1.6.7"; sha256 = "9786356c8bfdf631ea018c3244d0854c6db2cb24e583891ea553961443f61ef9"; +revision = "1"; +editedCabalFile = "04h2h8kdzhd2fp3w4a834xc1n88b1jgrxlgcsynfn0iwpbsb41x7"; libraryHaskellDepends = [ asn1-encoding asn1-types @@ -84900,8 +85769,10 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "xeno"; -version = "0.3.4"; -sha256 = "5a2a56d969a6410b65150bc4254f343c6bbe585e60eb4890d2bc0ac6c1f334eb"; +version = "0.3.5.1"; +sha256 = "c054d631fc0a7258cda979087d462e647a38e8442d0932d6463161407191bbad"; +revision = "1"; +editedCabalFile = "0d9w9x6lwhvshy4dbvd80ckb9p0g4vcmzy6kvwai9rqmszf89cnh"; libraryHaskellDepends = [ array base @@ -85091,6 +85962,8 @@ mkDerivation { pname = "xml"; version = "1.3.14"; sha256 = "32d1a1a9f21a59176d84697f96ae3a13a0198420e3e4f1c48abbab7d2425013d"; +revision = "1"; +editedCabalFile = "130xwqmgmg9vp988mppm5ivz1r5qbivb270fz2rwl4q0x04czdzd"; libraryHaskellDepends = [ base bytestring @@ -85420,8 +86293,8 @@ mkDerivation { pname = "xml-lens"; version = "0.1.6.3"; sha256 = "4dd7f1a91fbb12ae52d5a14badd9f38c0f0d7556f08ee77d79a67cc546dcb1e8"; -revision = "1"; -editedCabalFile = "1fbk4wv7zr10wsh8a0svd799im64fybnlb09rjpfl2pvb6i6h1qs"; +revision = "2"; +editedCabalFile = "1phba1j6ggxfsq4ivhd5wibzw1b9hwppqmgichyj3xg9z3widmnl"; libraryHaskellDepends = [ base case-insensitive @@ -85592,6 +86465,8 @@ mkDerivation { pname = "xmlbf"; version = "0.4.1"; sha256 = "189a02e8b54c3576c3a919799def7b83c0e602b222264901c644c941c34fdc75"; +revision = "1"; +editedCabalFile = "0j5yvsz0ib5w80wp1gc0li376adw8l861xvf5paa2hdq55jkxvi6"; libraryHaskellDepends = [ base bytestring @@ -85656,6 +86531,8 @@ mkDerivation { pname = "xmlgen"; version = "0.6.2.2"; sha256 = "926fa98c77525f5046274758fcebd190e86de3f53a4583179e8ce328f25a34d6"; +revision = "1"; +editedCabalFile = "0vwnqd0lsw81llsn0psga5r6pw7jh69vfbj3rnz7c2fpkc0gjh3j"; libraryHaskellDepends = [ base blaze-builder @@ -86187,8 +87064,8 @@ license = stdenv.lib.licenses.bsd3; mkDerivation { pname = "yesod-auth-hashdb"; -version = "1.7"; -sha256 = "65b9a941a9eb87421dfc57f817a7e4dd46bb204b0f27438084f7417805434f1c"; +version = "1.7.1"; +sha256 = "0d6f27a49aa862af8f4d1a84f8fe540300e42f9208728fba03a7996a5517dfe5"; libraryHaskellDepends = [ aeson base @@ -86261,8 +87138,8 @@ mkDerivation { pname = "yesod-bin"; version = "1.6.0.3"; sha256 = "e4db295b4c651c205a1730df38501c217d9b600f3dbc1eea21d5fa47e832aedc"; -revision = "3"; -editedCabalFile = "0v3bwg26ghxa1wdvwyvrffd8wwxhv1qk9g8f64ax1n8gz53k6an7"; +revision = "4"; +editedCabalFile = "1iw9m3z6m4n9dlwamf1kwr7pp2wpk6awf1m63zjkgw5j4vwxlcpg"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -86365,8 +87242,8 @@ license = stdenv.lib.licenses.mit; mkDerivation { pname = "yesod-core"; -version = "1.6.8.1"; -sha256 = "324592dce23bfc372892258540701a61aa722a33fdb7a820400c46193ebb0f4f"; +version = "1.6.9"; +sha256 = "ca64d08184c7775e2a985c903e74f32efedcf6c217b3370ca7e136082eeb8e4b"; libraryHaskellDepends = [ aeson auto-update @@ -87467,6 +88344,8 @@ mkDerivation { pname = "zip-archive"; version = "0.3.3"; sha256 = "988adee77c806e0b497929b24d5526ea68bd3297427da0d0b30b99c094efc84d"; +revision = "1"; +editedCabalFile = "0z0s2abc9bywapjrs8frgz6qdnc0yfc9ac9lyj2p5y2r61jp3y2k"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ diff --git a/pkgs/regen.nix b/pkgs/regen.nix index 8e005037789..12a04d365b5 100644 --- a/pkgs/regen.nix +++ b/pkgs/regen.nix @@ -5,7 +5,7 @@ # Update this if you need a package version recently uploaded to hackage. # Any timestamp works. -, hackageSnapshot ? "2018-11-06T10:00:00Z" +, hackageSnapshot ? "2019-07-08T10:00:00Z" }: with pkgs; diff --git a/stack.yaml b/stack.yaml index 3f4a743eed8..cfc893257e6 100644 --- a/stack.yaml +++ b/stack.yaml @@ -165,13 +165,6 @@ packages: - hedgehog extra-dep: true -# This is upstream version 0.9.2.2 which has been released to Hackage -# but we cannot use that yet because of Nix problems. -- location: - git: https://github.com/jaspervdj/stylish-haskell - commit: f253f37362be840bafe2c82a8d7fb284046fda48 - extra-dep: true - # Custom Universum prelude, that brings back some of the # formatting logic, as well as `pretty`. - location: @@ -233,6 +226,7 @@ extra-deps: - megaparsec-7.0.4 - neat-interpolation-0.3.2.4 - config-ini-0.2.4.0 +- stylish-haskell-0.9.2.2 # katip-0.6.3.0 conflicts with Win32-2.6.1.0 allow-newer: true diff --git a/wallet/cardano-sl.yaml b/wallet/cardano-sl.yaml index 7fc0272bc53..7eeb5fd27c7 100644 --- a/wallet/cardano-sl.yaml +++ b/wallet/cardano-sl.yaml @@ -1,5 +1,5 @@ name: cardano-sl -resolver: lts-12.17 +resolver: lts-12.26 packages: - Chart-1.9 - Chart-diagrams-1.9 @@ -25,6 +25,7 @@ packages: - tabl-1.0.3 - token-bucket-0.1.0.1 - wai-middleware-throttle-0.3.0.0 +- stylish-haskell.git-0.9.2.2 - git: https://github.com/avieth/plutus-prototype commit: d094be301195fcd8ab864d793f114970426a4478 @@ -80,9 +81,6 @@ packages: subdirs: - hedgehog -- git: https://github.com/input-output-hk/stylish-haskell.git - commit: ecfd3b307d8d13a6d12aff03055f25a39a17e182 - - git: https://github.com/input-output-hk/universum.git commit: 7f1b2483f71cacdfd032fe447064d6e0a1df50fc From dd6b57a274afe71f6946a3e25ecec8faa0f055e6 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Mon, 8 Jul 2019 21:55:30 -0400 Subject: [PATCH 05/30] bump haskell.nix --- nix/pkgs.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/nix/pkgs.nix b/nix/pkgs.nix index de2510cd0c7..5714c887de2 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -20,27 +20,27 @@ let nixpkgs' = import (import ./fetch-nixpkgs.nix) {}; # all packages from hackage as nix expressions hackage = import (overrideWith "hackage" - (nixpkgs'.fetchFromGitHub { owner = "angerman"; + (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; repo = "hackage.nix"; - rev = "d8e03ec0e3c99903d970406ae5bceac7d993035d"; - sha256 = "0c7camspw7v5bg23hcas0r10c40fnwwwmz0adsjpsxgdjxayws3v"; + rev = "77ccf6764809a70947d2d3c34be7f886ebef4222"; + sha256 = "10csn7v77ry769xri6rmh9kxn0z0ynqybqa2g0dvg58mmcp1g6jx"; name = "hackage-exprs-source"; })) ; # a different haskell infrastructure haskell = import (overrideWith "haskell" - (nixpkgs'.fetchFromGitHub { owner = "angerman"; + (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; repo = "haskell.nix"; - rev = "03026b7bb95a6713f4d50b841abadabb343f83d2"; - sha256 = "05ma2qmmn4p2xcgyy8waissfj953b7wyq97yx80d936074gyyw4s"; + rev = "9d251db79ad7736c1d3d38e5005f07e5e44e86d4"; + sha256 = "0aalg19bksnqq5a5xaz90pghjsagfysbcpgwbwz5hfqrrl7mplgg"; name = "haskell-lib-source"; })) hackage; # the set of all stackage snapshots stackage = import (overrideWith "stackage" - (nixpkgs'.fetchFromGitHub { owner = "angerman"; + (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; repo = "stackage.nix"; - rev = "67675ea78ae5c321ed0b8327040addecc743a96c"; - sha256 = "1ds2xfsnkm2byg8js6c9032nvfwmbx7lgcsndjgkhgq56bmw5wap"; + rev = "c34653026c97ce01a237212d5ed7a9c8fc607810"; + sha256 = "0cawknjg7qg467d6cmf8zx957cfwk35sfwblsn8sl64z5c2jfcs8"; name = "stackage-snapshot-source"; })) ; From 064b23e2be2114bb13a62f60608a4b8d7ba42eca Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Mon, 8 Jul 2019 22:51:59 -0400 Subject: [PATCH 06/30] start over from scratch --- .gitignore | 1 + .stack-to-nix.cache | 36 -- default.nix | 344 +++--------------- nix/.stack-pkgs.nix | 89 ----- nix/.stack.nix/acid-state-exts.nix | 23 +- nix/.stack.nix/acid-state.nix | 61 ++-- nix/.stack.nix/canonical-json.nix | 35 +- nix/.stack.nix/cardano-crypto.nix | 48 +-- nix/.stack.nix/cardano-report-server.nix | 45 +-- nix/.stack.nix/cardano-sl-auxx.nix | 43 +-- nix/.stack.nix/cardano-sl-binary-test.nix | 27 +- nix/.stack.nix/cardano-sl-binary.nix | 37 +- nix/.stack.nix/cardano-sl-chain-test.nix | 23 +- nix/.stack.nix/cardano-sl-chain.nix | 39 +- nix/.stack.nix/cardano-sl-client.nix | 37 +- nix/.stack.nix/cardano-sl-cluster.nix | 35 +- nix/.stack.nix/cardano-sl-core-test.nix | 23 +- nix/.stack.nix/cardano-sl-core.nix | 35 +- nix/.stack.nix/cardano-sl-crypto-test.nix | 23 +- nix/.stack.nix/cardano-sl-crypto.nix | 35 +- nix/.stack.nix/cardano-sl-db-test.nix | 23 +- nix/.stack.nix/cardano-sl-db.nix | 29 +- nix/.stack.nix/cardano-sl-explorer.nix | 77 ++-- nix/.stack.nix/cardano-sl-faucet.nix | 31 +- nix/.stack.nix/cardano-sl-generator.nix | 53 ++- nix/.stack.nix/cardano-sl-infra-test.nix | 23 +- nix/.stack.nix/cardano-sl-infra.nix | 31 +- nix/.stack.nix/cardano-sl-mnemonic.nix | 31 +- nix/.stack.nix/cardano-sl-networking.nix | 51 +-- nix/.stack.nix/cardano-sl-node-ipc.nix | 23 +- nix/.stack.nix/cardano-sl-node.nix | 33 +- nix/.stack.nix/cardano-sl-script-runner.nix | 27 +- .../cardano-sl-tools-post-mortem.nix | 26 +- nix/.stack.nix/cardano-sl-tools.nix | 87 ++--- nix/.stack.nix/cardano-sl-util-test.nix | 27 +- nix/.stack.nix/cardano-sl-util.nix | 35 +- nix/.stack.nix/cardano-sl-utxo.nix | 21 +- nix/.stack.nix/cardano-sl-wallet-new.nix | 285 --------------- nix/.stack.nix/cardano-sl-x509.nix | 25 +- nix/.stack.nix/cardano-sl.nix | 43 +-- nix/.stack.nix/cardano-wallet.nix | 43 +-- nix/.stack.nix/clock.nix | 45 +-- nix/.stack.nix/default.nix | 92 +++++ nix/.stack.nix/engine-io-wai.nix | 29 +- nix/.stack.nix/engine-io.nix | 29 +- nix/.stack.nix/hedgehog.nix | 31 +- nix/.stack.nix/inspector.nix | 33 +- nix/.stack.nix/ip.nix | 56 ++- nix/.stack.nix/kademlia.nix | 41 +-- nix/.stack.nix/log-warper.nix | 39 +- nix/.stack.nix/network-transport-inmemory.nix | 41 +-- nix/.stack.nix/network-transport-tcp.nix | 41 +-- nix/.stack.nix/network-transport.nix | 31 +- nix/.stack.nix/plutus-prototype.nix | 53 --- nix/.stack.nix/rocksdb-haskell-ng.nix | 43 +-- nix/.stack.nix/serokell-util.nix | 35 +- nix/.stack.nix/socket-io.nix | 29 +- nix/.stack.nix/stylish-haskell.nix | 90 ----- nix/.stack.nix/time-units.nix | 27 +- nix/.stack.nix/universum.nix | 43 +-- nix/iohk-common.nix | 14 + nix/iohk-nix-src.json | 7 + nix/nix-tools.nix | 6 + nix/pkgs.nix | 201 +--------- nix/regenerate.sh | 6 + nix/update-iohk-nix.sh | 9 + release.nix | 322 ++++------------ stack.yaml | 1 + 68 files changed, 955 insertions(+), 2502 deletions(-) delete mode 100644 .stack-to-nix.cache delete mode 100644 nix/.stack-pkgs.nix delete mode 100644 nix/.stack.nix/cardano-sl-wallet-new.nix create mode 100644 nix/.stack.nix/default.nix delete mode 100644 nix/.stack.nix/plutus-prototype.nix delete mode 100644 nix/.stack.nix/stylish-haskell.nix create mode 100644 nix/iohk-common.nix create mode 100644 nix/iohk-nix-src.json create mode 100644 nix/nix-tools.nix create mode 100755 nix/regenerate.sh create mode 100755 nix/update-iohk-nix.sh diff --git a/.gitignore b/.gitignore index 6d0b1bd8a88..a641084cd51 100644 --- a/.gitignore +++ b/.gitignore @@ -243,3 +243,4 @@ nix/.stack.nix/*.nix linguist-generated=true .stack-to-nix.cache linguist-generated=true nix/.stack-pkgs.nix linguist-generated=true script-runner/states + diff --git a/.stack-to-nix.cache b/.stack-to-nix.cache deleted file mode 100644 index e4c7ed5b733..00000000000 --- a/.stack-to-nix.cache +++ /dev/null @@ -1,36 +0,0 @@ -https://github.com/avieth/plutus-prototype d094be301195fcd8ab864d793f114970426a4478 . 1s932rghn4zn441waansp408b5bwk20rc1wsa5693a2nwnp4dijw plutus-prototype .stack.nix/plutus-prototype.nix -https://github.com/input-output-hk/cardano-report-server.git 9b96874d0f234554a5779d98762cc0a6773a532a . 02n86wbfr3z2xqrc8g8naj0dc5j4644y0l295qzdqlfynmz6a82z cardano-report-server .stack.nix/cardano-report-server.nix -https://github.com/angerman/cardano-crypto 1e436fe8b69e7c8b399937db394d99229fcd775c . 02kisrjavvi4hr2kyq7znd7y3y5c4pbl6w8gr5a58fl03m69sngr cardano-crypto .stack.nix/cardano-crypto.nix -https://github.com/andrewthad/haskell-ip 9bb453139aa82cc973125091800422a523e1eb8f . 199mfpbgca7rvwvwk2zsmcpibc0sk0ni7c5zlf4gk3cps8s85gyr ip .stack.nix/ip.nix -https://github.com/serokell/time-units.git 6c3747c1ac794f952de996dd7ba8a2f6d63bf132 . 0psdr1if0rgnn24698x3583m0603rwd3sd7yb9whj03hskmkwpgs time-units .stack.nix/time-units.nix -https://github.com/serokell/kademlia.git 7120bb4d28e708acd52dfd61d3dca7914fac7d7f . 1k1wp9dwhzzqfivxc28vhxfqplnyh916crr7bhsiv829d6qifhw1 kademlia .stack.nix/kademlia.nix -https://github.com/serokell/network-transport 018a50b9042c2115c3ec9c9fd5ca5f28737dd29c . 0lqa26l2ikpq6a4s7qm9b2favx59w82i0wngakhfyax66fpixp8q network-transport .stack.nix/network-transport.nix -https://github.com/serokell/network-transport-tcp 3d56652123bd296dc759cd31947eb2a17924e68a . 1cim8867kf36kv6ax9jx5shlqd7hhs1i4jf101x4pk3wriwbxsds network-transport-tcp .stack.nix/network-transport-tcp.nix -https://github.com/avieth/network-transport-inmemory 5d8ff2b07b9df35cf61329a3d975e2c8cf95c12a . 0ak64rks3lk3kk5wyndrrk2swmd84h9diribzix305xwz1jhjj9w network-transport-inmemory .stack.nix/network-transport-inmemory.nix -https://github.com/parsonsmatt/acid-state a1b23e2056f134e53f705a694ab85deeecabec5c . 0mgdk8252g7wbb0afyn21pcn3bwh4vainy3h2d0xsv4hlpgqgnw8 acid-state .stack.nix/acid-state.nix -https://github.com/input-output-hk/engine.io.git 8f9216b8f9c7bd96cb1feeb82db5271744d67fcd socket-io 1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m socket-io .stack.nix/socket-io.nix -https://github.com/input-output-hk/engine.io.git 8f9216b8f9c7bd96cb1feeb82db5271744d67fcd engine-io 1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m engine-io .stack.nix/engine-io.nix -https://github.com/input-output-hk/engine.io.git 8f9216b8f9c7bd96cb1feeb82db5271744d67fcd engine-io-wai 1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m engine-io-wai .stack.nix/engine-io-wai.nix -https://github.com/input-output-hk/canonical-json.git f66762e4c4fe484ed109d28ad541fc55cc841c2c . 0cqa4vnrj3wqqgzzg9v7p3ddrfsf5fx63dv2jnwnlfaczs007dkq canonical-json .stack.nix/canonical-json.nix -https://github.com/corsis/clock.git ef60bd51a3587a173adf565c33bf2886df6e3842 . 1r4n9imls483f7wd61fi1jk16z2k7w36gpx798sqidvwbnc831q1 clock .stack.nix/clock.nix -https://github.com/input-output-hk/rocksdb-haskell-ng.git 49f501a082d745f3b880677220a29cafaa181452 . 02jvri8ik8jgrxwa6qmh3xcwqvm4s27iv3sxpjpny79nlhlxvfzp rocksdb-haskell-ng .stack.nix/rocksdb-haskell-ng.nix -https://github.com/input-output-hk/log-warper.git 0b7d4d48310f139d75829d31883aaa87ce53312c . 0m9inw7m42yj0kn3x3ip5ipv72pr34l4744myzlidbpqa2wf4b7g log-warper .stack.nix/log-warper.nix -https://github.com/input-output-hk/haskell-hedgehog.git 2e741bb53afb085741807018948ae17d956c53af hedgehog 0l0d1n2b68m0628j4yi214q5fy6pz777qfj1bc1lrra8scs5gcxh hedgehog .stack.nix/hedgehog.nix -https://github.com/input-output-hk/stylish-haskell.git ecfd3b307d8d13a6d12aff03055f25a39a17e182 . 0d6ylb07gxv050fpzc6siwxj8c7j1pkcry5zyzimv0xwn1wf6rfy stylish-haskell .stack.nix/stylish-haskell.nix -https://github.com/input-output-hk/universum.git 7f1b2483f71cacdfd032fe447064d6e0a1df50fc . 12ppiszywj0dsspwlhb8bzhsrlgszk8rvlhcy8il3ppz99mlnw5g universum .stack.nix/universum.nix -https://github.com/input-output-hk/serokell-util.git 4ead9809e119483e7832da5f8224b0c4d4a2d5d6 . 0h4wcvp126w021bc2kglsbfywyvc9z3yf1sh1k4yy1an4ckh51jd serokell-util .stack.nix/serokell-util.nix -https://github.com/input-output-hk/cardano-report-server.git 93f2246c54436e7f98cc363b4e0f8f1cb5e78717 . 04zsgrmnlyjymry6fsqnz692hdp89ykqb8jyxib8yklw101gdn3x cardano-report-server .stack.nix/cardano-report-server.nix -https://github.com/primetype/inspector.git 964558881210bf1f9387b51ab05057b1290d1d71 . 1ig1gb131z37jbg5ih2lv609f4jgw9wmm6lcxdclihjq5lm12b7n inspector .stack.nix/inspector.nix -https://github.com/input-output-hk/cardano-crypto 3c707936ba0a665375acf5bd240dc4b6eaa6c0bc . 0g8ln8k8wx4csdv92bz09pr7v9dp4lcyv1334b09c9rgwdwhqg1b cardano-crypto .stack.nix/cardano-crypto.nix -https://github.com/angerman/inspector.git 9215d64b8a05d366d31135b89644823ecdc3efb8 . 12q1v7a8kcw7qi4lws4j3mvxwfkhni6zmp870kmnkgbgwvrax9gs inspector .stack.nix/inspector.nix -https://github.com/primetype/inspector.git c975f4329365f0379c04358138e616fb96fb0b79 . 12q1v7a8kcw7qi4lws4j3mvxwfkhni6zmp870kmnkgbgwvrax9gs inspector .stack.nix/inspector.nix -https://github.com/input-output-hk/cardano-crypto 59eb60b3a227c615736db9bb1609fd5c20109098 . 0afacdk9ibdzay43l79r1zvg957gkrnrfla5dzcd64jz6xnigg8j cardano-crypto .stack.nix/cardano-crypto.nix -https://github.com/input-output-hk/cardano-crypto 45e1a0eafac774c109704be44ca06fd8cae193ba . 1jyzai4sn9hi3p6r97h54f9a7an7vk38lwrbl4mds9zmdsw5f5ad cardano-crypto .stack.nix/cardano-crypto.nix -https://github.com/avieth/network-transport-tcp 2634e5e32178bb0456d800d133f8664321daa2ef . 03shp9prflhgqzw7pymw1pq2q7s1wf46pyjm2csx8646snrhf35i network-transport-tcp .stack.nix/network-transport-tcp.nix -https://github.com/input-output-hk/haskell-hedgehog.git e63fb354bfbad07f3befdd43b382c655944218be hedgehog 1p2yzlaiqj34pkk26cgg0dkvkm1zwjpgx1zk95md5xj0cijb34gj hedgehog .stack.nix/hedgehog.nix -https://github.com/hedgehogqa/haskell-hedgehog.git a20005f4d584f19ea05524320f1c9a90a44c81db hedgehog 1lca47ilzg75ibv2qbb1pl466rba6ir8ra0cg4qlji63dsbpkiks hedgehog .stack.nix/hedgehog.nix -https://github.com/jaspervdj/stylish-haskell f253f37362be840bafe2c82a8d7fb284046fda48 . 070lwddjvawaf42p8mvxl6fam44nhn98nc85gsk5688fygccv5qw stylish-haskell .stack.nix/stylish-haskell.nix -https://github.com/well-typed/canonical-json.git ddfe3593b80b5ceb88842bb7a6f2268df75d2c2f . 02fzn1xskis1lc1pkz0j92v6ipd89ww0k2p3dvwpm3yap5dpnm7k canonical-json .stack.nix/canonical-json.nix -https://github.com/input-output-hk/cardano-crypto 4590efa638397e952a51a8994b5543e4ea3c1ecd . 0hl2n3bba5v2j0lmxhs7hs01z3aznh2bwf9cb434icq2g0bl8ms3 cardano-crypto .stack.nix/cardano-crypto.nix -https://github.com/input-output-hk/universum 15f7db758ff5a24b874de2247f6f7a4576562da5 . 127bs29zpjcc40777dv7figk05gd00b9ja57sp11w440qr5h72hk universum .stack.nix/universum.nix -https://github.com/input-output-hk/serokell-util e592ae9b9387184519b393c066edbf8b4ed91737 . 11nhmikaqmhfs4cyhs3rq07bi4hmqyfg9vl7q8779h07i629zsz3 serokell-util .stack.nix/serokell-util.nix diff --git a/default.nix b/default.nix index c27aad01b5e..b6bfddae5dc 100644 --- a/default.nix +++ b/default.nix @@ -1,307 +1,55 @@ -######################################################################## -# default.nix -- The top-level nix build file for cardano-sl. +{ customConfig ? {}, ... }: # -# This file defines an attribute set of cardano-sl packages. +# The default.nix file. This will generate targets for all +# buildables (see release.nix for nomenclature, excluding +# the "build machine" last part, specific to release.nix), eg.: # -# It contains: +# - nix build -f default.nix nix-tools.tests.io-sim # All `io-sim` tests +# - nix build -f default.nix nix-tools.tests.ouroboros-consensus.test-consensus # -# - pkgs -- the nixpkgs set that the build is based on. -# - haskellPackages.* -- the package set based on stackage -# - haskellPackages.ghc -- the compiler -# - cardanoPackages -- just cardano packages +# Generated targets include anything from stack.yaml (via nix-tools:stack-to-nix and the nix/regenerate.sh script) +# or cabal.project (via nix-tools:plan-to-nix), including all +# version overrides specified there. # -# - acceptanceTests -- tests which need network access to connect to -# the actual relay nodes. +# Nix-tools stack-to-nix will generate the `nix/.stack-pkgs.nix` +# file which is imported from the `nix/pkgs.nix` where further +# customizations outside of the ones in stack.yaml/cabal.project +# can be specified as needed for nix/ci. # -# - dockerImages -- for exchanges and developers who like docker -# Build these and `docker load -i` the resulting -# file. -# - mainnet -# - staging -# - testnet +# Please run `nix/regenerate.sh` after modifying stack.yaml +# or relevant part of cabal configuration files. +# When switching to recent stackage or hackage package version, +# you might also need to update the iohk-nix common lib. You +# can do so by running the `nix/update-iohk-nix.sh` script. # -# - connectScripts -- builds a script which starts a wallet. Run the -# resulting script. -# - mainnet.wallet -- connect a wallet to mainnet -# - mainnet.explorer -- explorer node connected to testnet -# - staging.* -- connect scripts for staging -# - testnet.* -- connect scripts for testnet +# More information about iohk-nix and nix-tools is available at: +# https://github.com/input-output-hk/iohk-nix/blob/master/docs/nix-toolification.org#for-a-stackage-project # -# Other files: -# - shell.nix - dev environment, used by nix-shell / nix run. -# - release.nix - the Hydra jobset. -# - lib.nix - the localLib common functions. -# - nix/* - other nix code modules used by this file. -# -# See also: -# - docs/how-to/build-cardano-sl-and-daedalus-from-source-code.md -# - docs/nix.md -# -######################################################################## - -let - localLib = import ./lib.nix; -in -{ system ? builtins.currentSystem -, crossSystem ? null -, config ? import ./nix/config.nix # The nixpkgs configuration file - -# Use a pinned version nixpkgs. -, pkgs ? localLib.importPkgs { inherit system crossSystem config; } - -# SHA1 hash which will be embedded in binaries -, gitrev ? localLib.commitIdFromGitRepo ./.git - -# This is set by CI -, buildId ? null - -# Disable running of tests for all cardano-sl packages. -, forceDontCheck ? false - -# Enable profiling for all haskell packages. -# Profiling slows down performance by 50% so we don't enable it by default. -, enableProfiling ? false - -# Keeps the debug information for all haskell packages. -, enableDebugging ? false - -# Build (but don't run) benchmarks for all cardano-sl packages. -, enableBenchmarks ? false - -# Overrides all nix derivations to add build timing information in -# their build output. -, enablePhaseMetrics ? true - -# Disables optimization in the build for all cardano-sl packages. -, fasterBuild ? false - -# Whether local options in ./custom-wallet-config.nix should apply to -# the wallet connect script build. -, allowCustomConfig ? true - -# Makes the demo wallet/cluster/connect scripts use "stack exec" -# instead of running the nix-built executables. -, useStackBinaries ? false -}: - -with pkgs.lib; +# We will need to import the iohk-nix common lib, which includes +# the nix-tools tooling. let - src = localLib.cleanSourceTree ./.; - - packages = self: ({ - inherit pkgs; - - # This is the stackage LTS plus overrides, plus the cardano-sl - # packages. - haskellPackages = self.callPackage ./nix/haskell-packages.nix { - inherit forceDontCheck enableProfiling enablePhaseMetrics - enableBenchmarks fasterBuild enableDebugging; - }; - - # fixme: I would like to have these attributes at the top-level, - # but am getting problems with infinite recursion. Help me! - cardanoPackages = localLib.getCardanoPackages self.justStaticExecutablesGitRev self.haskellPackages; - - # fixme: this is just for CI so should probably only be in release.nix - all-cardano-sl = pkgs.buildEnv { - name = "all-cardano-sl"; - paths = attrValues self.cardanoPackages; - ignoreCollisions = true; - }; - - - #################################################################### - # Frontends - - # The explorer frontend, built with Purescript. - cardano-sl-explorer-frontend = self.callPackage ./explorer/frontend { - cardano-sl-explorer = self.cardanoPackages.cardano-sl-explorer-static; - }; - - # A demo/development frontend for the faucet API. Override this - # derivation to customize URLs, etc. - cardano-sl-faucet-frontend = self.callPackage ./faucet/frontend { }; - # Backwards compat for iohk-ops. - makeFaucetFrontend = self.cardano-sl-faucet-frontend; - - #################################################################### - # Report Server - - cardano-report-server-static = self.justStaticExecutablesGitRev self.cardano-report-server; - - - #################################################################### - # Daedalus wallet - - # Packages all the configuration required for running a node. - cardano-sl-config = self.callPackage ./nix/cardano-sl-config.nix { }; - - # Provides the edge node (wallet), tools, and configuration - # required for Daedalus. - daedalus-bridge = self.callPackage ./nix/daedalus-bridge.nix { - cardano-sl-node = self.cardanoPackages.cardano-sl-node-static; - cardano-sl-tools = self.cardanoPackages.cardano-sl-tools-static; - cardano-wallet = self.cardanoPackages.cardano-wallet-static; - }; - - - #################################################################### - # Docker images - - dockerImages = let - build = args: self.callPackage ./nix/docker.nix ({ - inherit (self.cardanoPackages) cardano-sl-node-static; - } // args); - makeDockerImage = { environment, ...}: - build { inherit environment; } // { - wallet = build { inherit environment; type = "wallet"; }; - explorer = build { inherit environment; type = "explorer"; }; - node = build { inherit environment; type = "node"; }; - }; - in localLib.forEnvironments makeDockerImage; - - #################################################################### - # Tests - - tests = { - shellcheck = self.callPackage ./scripts/test/shellcheck.nix { inherit src; }; - hlint = self.callPackage ./scripts/test/hlint.nix { inherit src; }; - stylishHaskell = self.callPackage ./scripts/test/stylish.nix { inherit (self.haskellPackages) stylish-haskell; inherit src; }; - swaggerSchemaValidation = self.callPackage ./scripts/test/wallet/swaggerSchemaValidation.nix { - inherit (self.cardanoPackages) cardano-wallet; - }; - yamlValidation = self.callPackage ./scripts/test/yamlValidation.nix { - inherit (self) haskellPackages; inherit (localLib) runHaskell; - }; - }; - - # Currently the only acceptance tests here are to sync the wallet - # against mainnet and testnet. - acceptanceTests = let - acceptanceTest = args: self.callPackage ./scripts/test/acceptance ({ - inherit (self.cardanoPackages) - cardano-sl-tools - cardano-wallet; - } // args); - mkTest = { environment, ...}: { - full = acceptanceTest { inherit environment; resume = false; }; - quick = acceptanceTest { inherit environment; resume = true; }; - }; - in localLib.forEnvironments mkTest; - - #################################################################### - ## Connect scripts and demo cluster - - # A function to connect a wallet to a network. - # The args parameter is an attrset for parameters applied to - # ./scripts/launch/connect-to-cluster/default.nix - connect = let - walletConfigFile = ./custom-wallet-config.nix; - walletConfig = if allowCustomConfig - then (if builtins.pathExists walletConfigFile then import walletConfigFile else {}) - else {}; - in - args: self.callPackage ./scripts/launch/connect-to-cluster (args // { - inherit (self.cardanoPackages) - cardano-wallet-static - cardano-sl-explorer-static - cardano-sl-tools-static; - inherit useStackBinaries; - } // walletConfig); - - # Connect scripts for each network - connectScripts = localLib.forEnvironments ({ environment, ... }: { - wallet = self.connect { inherit environment; }; - explorer = self.connect { inherit environment; executable = "explorer"; }; - }); - - # Produces a script which starts a cluster of core nodes and a - # relay, then connects an edge node (wallet) to it. - demoCluster = self.callPackage ./scripts/launch/demo-cluster { - inherit useStackBinaries; - inherit (self.cardanoPackages) - cardano-sl cardano-sl-cluster cardano-wallet; - }; - - #################################################################### - # Build tools - - # Utility which removes all but the statically linked executables - # of a haskell package, and stamps them with the git revision. - justStaticExecutablesGitRev = self.callPackage ./scripts/set-git-rev { - inherit (self.haskellPackages) ghc; - inherit gitrev; - }; - - # Tool for generating ./pkgs/default.nix - # stack2nix = self.callPackage ./nix/stack2nix.nix { }; - # TODO: go back to using our own build of stack2nix, rather than - # the version from nixpkgs. The following PRs need to be fixed: - # https://github.com/input-output-hk/stack2nix/pull/128 - # https://github.com/input-output-hk/stack2nix/pull/135 - inherit (pkgs) stack2nix; - - validateJson = self.callPackage ./tools/src/validate-json {}; - - # Add a shell attributes so these can be built and cached by Hydra. - shells = { - cabal = import ./shell.nix { inherit system config pkgs; iohkPkgs = self; }; - stack = import ./nix/stack-shell.nix { inherit system config pkgs; iohkPkgs = self; }; - }; - - #################################################################### - # Version info - - inherit (self.haskellPackages.cardano-sl) version; - inherit gitrev; - } - # fixme: Temporary fix for hydra evaluation - // { inherit (self.cardanoPackages) - cardano-sl - cardano-sl-auxx - cardano-sl-script-runner - cardano-sl-chain - cardano-sl-cluster - cardano-sl-core - cardano-sl-crypto - cardano-sl-db - cardano-sl-explorer - cardano-sl-explorer-static - cardano-sl-generator - cardano-sl-infra - cardano-sl-networking - cardano-sl-node-static - cardano-sl-tools - cardano-sl-tools-post-mortem - cardano-sl-util - cardano-sl-x509 - cardano-wallet - cardano-wallet-static; - inherit (self.haskellPackages) - cardano-report-server; } - # nix-tools setup - // (with builtins; with pkgs.lib; let nix-tools = import ./nix/pkgs.nix { nixpkgs = _: pkgs; }; in - { - nix-tools = { _raw = nix-tools; } - # some shorthands - // { libs = mapAttrs (k: v: if v.components ? "library" - then v.components.library - else null) nix-tools; } - // { exes = mapAttrs (k: v: if length (attrValues v.components.exes) > 0 - then (if pkgs.stdenv.targetPlatform.isWindows then pkgs.copyJoin else pkgs.symlinkJoin) - { name = "${k}-exes"; paths = attrValues v.components.exes; } - else null) nix-tools; } - // { tests = mapAttrs (k: v: if length (attrValues v.components.tests) > 0 - then v.components.tests - else null) nix-tools; } - // { benchmarks = mapAttrs (k: v: if length (attrValues v.components.benchmarks) > 0 - then v.components.benchmarks - else null) nix-tools; } - ; - }) - ); - -in - # The top-level package set - pkgs.lib.makeScope pkgs.newScope packages + commonLib = import ./nix/iohk-common.nix; + +# This file needs to export a function that takes +# the arguments it is passed and forwards them to +# the default-nix template from iohk-nix. This is +# important so that the release.nix file can properly +# parameterize this file when targetting different +# hosts. + nixTools = import ./nix/nix-tools.nix {}; + # TODO: move scripts to cardano-shell at some point. + # Usage: + # nix-build -A scripts.byron.proxy.mainnet -o proxy + # nix-build -A scripts.byron.validator.mainnet -o validator + # ./proxy + # ./validator + #scripts = import ./nix/scripts.nix { + # inherit commonLib nixTools; + # inherit customConfig; + #}; + #tests = import ./nix/nixos/tests { inherit (commonLib) pkgs; }; +in { + #inherit scripts tests; + inherit (nixTools) nix-tools; +} diff --git a/nix/.stack-pkgs.nix b/nix/.stack-pkgs.nix deleted file mode 100644 index ee46f3c0eda..00000000000 --- a/nix/.stack-pkgs.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - overlay = hackage: - { - packages = { - "fmt" = hackage.fmt."0.6".revisions.default; - "servant-multipart" = hackage.servant-multipart."0.11.2".revisions.default; - "normaldistribution" = hackage.normaldistribution."1.1.0.3".revisions.default; - "aeson-options" = hackage.aeson-options."0.0.0".revisions.default; - "servant-swagger-ui-redoc" = hackage.servant-swagger-ui-redoc."0.3.0.1.21.2".revisions.default; - "wai-middleware-throttle" = hackage.wai-middleware-throttle."0.3.0.0".revisions.default; - "ether" = hackage.ether."0.5.1.0".revisions.default; - "servant-quickcheck" = hackage.servant-quickcheck."0.0.7.2".revisions.default; - "o-clock" = hackage.o-clock."0.1.1".revisions.default; - "beam-sqlite" = hackage.beam-sqlite."0.3.2.3".revisions.default; - "katip" = hackage.katip."0.6.3.0".revisions.default; - "Chart" = hackage.Chart."1.9".revisions.default; - "Chart-diagrams" = hackage.Chart-diagrams."1.9".revisions.default; - "SVGFonts" = hackage.SVGFonts."1.6.0.3".revisions.default; - "pvss" = hackage.pvss."0.2.0".revisions.default; - "systemd" = hackage.systemd."1.1.2".revisions.default; - "base58-bytestring" = hackage.base58-bytestring."0.1.0".revisions.default; - "pipes-interleave" = hackage.pipes-interleave."1.1.3".revisions.default; - "tabl" = hackage.tabl."1.0.3".revisions.default; - "loc" = hackage.loc."0.1.3.3".revisions.default; - "hspec" = hackage.hspec."2.5.5".revisions.default; - "micro-recursion-schemes" = hackage.micro-recursion-schemes."5.0.2.2".revisions.default; - "token-bucket" = hackage.token-bucket."0.1.0.1".revisions.default; - "lzma-clib" = hackage.lzma-clib."5.2.2".revisions.default; - "megaparsec" = hackage.megaparsec."7.0.4".revisions.default; - "neat-interpolation" = hackage.neat-interpolation."0.3.2.4".revisions.default; - "config-ini" = hackage.config-ini."0.2.4.0".revisions.default; - "stylish-haskell" = hackage.stylish-haskell."0.9.2.2".revisions.default; - } // { - cardano-sl-util = ./.stack.nix/cardano-sl-util.nix; - cardano-sl-util-test = ./.stack.nix/cardano-sl-util-test.nix; - cardano-sl-networking = ./.stack.nix/cardano-sl-networking.nix; - cardano-sl-binary = ./.stack.nix/cardano-sl-binary.nix; - cardano-sl-binary-test = ./.stack.nix/cardano-sl-binary-test.nix; - cardano-sl-crypto = ./.stack.nix/cardano-sl-crypto.nix; - cardano-sl-crypto-test = ./.stack.nix/cardano-sl-crypto-test.nix; - cardano-sl-core = ./.stack.nix/cardano-sl-core.nix; - cardano-sl-core-test = ./.stack.nix/cardano-sl-core-test.nix; - cardano-sl-db = ./.stack.nix/cardano-sl-db.nix; - cardano-sl-db-test = ./.stack.nix/cardano-sl-db-test.nix; - cardano-sl-infra = ./.stack.nix/cardano-sl-infra.nix; - cardano-sl-infra-test = ./.stack.nix/cardano-sl-infra-test.nix; - cardano-sl-chain = ./.stack.nix/cardano-sl-chain.nix; - cardano-sl-chain-test = ./.stack.nix/cardano-sl-chain-test.nix; - cardano-sl = ./.stack.nix/cardano-sl.nix; - cardano-sl-generator = ./.stack.nix/cardano-sl-generator.nix; - cardano-sl-client = ./.stack.nix/cardano-sl-client.nix; - cardano-sl-auxx = ./.stack.nix/cardano-sl-auxx.nix; - cardano-sl-script-runner = ./.stack.nix/cardano-sl-script-runner.nix; - cardano-sl-explorer = ./.stack.nix/cardano-sl-explorer.nix; - cardano-sl-node = ./.stack.nix/cardano-sl-node.nix; - cardano-sl-tools = ./.stack.nix/cardano-sl-tools.nix; - cardano-sl-tools-post-mortem = ./.stack.nix/cardano-sl-tools-post-mortem.nix; - cardano-sl-utxo = ./.stack.nix/cardano-sl-utxo.nix; - cardano-wallet = ./.stack.nix/cardano-wallet.nix; - cardano-sl-node-ipc = ./.stack.nix/cardano-sl-node-ipc.nix; - cardano-sl-faucet = ./.stack.nix/cardano-sl-faucet.nix; - acid-state-exts = ./.stack.nix/acid-state-exts.nix; - cardano-sl-x509 = ./.stack.nix/cardano-sl-x509.nix; - cardano-sl-cluster = ./.stack.nix/cardano-sl-cluster.nix; - cardano-sl-mnemonic = ./.stack.nix/cardano-sl-mnemonic.nix; - cardano-report-server = ./.stack.nix/cardano-report-server.nix; - cardano-crypto = ./.stack.nix/cardano-crypto.nix; - ip = ./.stack.nix/ip.nix; - time-units = ./.stack.nix/time-units.nix; - kademlia = ./.stack.nix/kademlia.nix; - network-transport = ./.stack.nix/network-transport.nix; - network-transport-tcp = ./.stack.nix/network-transport-tcp.nix; - network-transport-inmemory = ./.stack.nix/network-transport-inmemory.nix; - acid-state = ./.stack.nix/acid-state.nix; - socket-io = ./.stack.nix/socket-io.nix; - engine-io = ./.stack.nix/engine-io.nix; - engine-io-wai = ./.stack.nix/engine-io-wai.nix; - canonical-json = ./.stack.nix/canonical-json.nix; - clock = ./.stack.nix/clock.nix; - rocksdb-haskell-ng = ./.stack.nix/rocksdb-haskell-ng.nix; - log-warper = ./.stack.nix/log-warper.nix; - hedgehog = ./.stack.nix/hedgehog.nix; - universum = ./.stack.nix/universum.nix; - serokell-util = ./.stack.nix/serokell-util.nix; - inspector = ./.stack.nix/inspector.nix; - }; - }; - resolver = "lts-12.26"; -} diff --git a/nix/.stack.nix/acid-state-exts.nix b/nix/.stack.nix/acid-state-exts.nix index 51c6f1e6e33..f93a7261b09 100644 --- a/nix/.stack.nix/acid-state-exts.nix +++ b/nix/.stack.nix/acid-state-exts.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "acid-state-exts"; - version = "0.14.2"; - }; + identifier = { name = "acid-state-exts"; version = "0.14.2"; }; license = "LicenseRef-PublicDomain"; copyright = ""; maintainer = "Lemmih "; @@ -22,7 +13,7 @@ synopsis = "Add ACID guarantees to any serializable Haskell data structure."; description = "Use regular Haskell data structures as your database and get stronger ACID guarantees than most RDBMS offer."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -35,9 +26,7 @@ (hsPkgs.mtl) (hsPkgs.safecopy) (hsPkgs.time-units) - ] ++ pkgs.lib.optional (system.isWindows) (hsPkgs.Win32); + ] ++ (pkgs.lib).optional (system.isWindows) (hsPkgs.Win32); + }; }; - }; - } // rec { - src = .././../acid-state-exts; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././acid-state-exts; } \ No newline at end of file diff --git a/nix/.stack.nix/acid-state.nix b/nix/.stack.nix/acid-state.nix index 084c4312b6f..c157d27a7a6 100644 --- a/nix/.stack.nix/acid-state.nix +++ b/nix/.stack.nix/acid-state.nix @@ -1,20 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { - flags = { - skip-state-machine-test = false; - }; + flags = { skip-state-machine-test = false; }; package = { specVersion = "1.10"; - identifier = { - name = "acid-state"; - version = "0.15.0"; - }; + identifier = { name = "acid-state"; version = "0.15.0"; }; license = "LicenseRef-PublicDomain"; copyright = ""; maintainer = "Lemmih "; @@ -24,10 +13,10 @@ synopsis = "Add ACID guarantees to any serializable Haskell data structure."; description = "Use regular Haskell data structures as your database and get stronger ACID guarantees than most RDBMS offer."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.array) (hsPkgs.base) (hsPkgs.bytestring) @@ -43,13 +32,13 @@ (hsPkgs.network) (hsPkgs.template-haskell) (hsPkgs.th-expand-syns) - ] ++ (if system.isWindows + ] ++ (if system.isWindows then [ (hsPkgs.Win32) ] else [ (hsPkgs.unix) ]); - }; + }; tests = { "specs" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.acid-state) (hsPkgs.deepseq) @@ -58,13 +47,13 @@ (hsPkgs.mtl) (hsPkgs.safecopy) (hsPkgs.template-haskell) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; - }; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; "state-machine" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.acid-state) (hsPkgs.containers) @@ -73,10 +62,10 @@ (hsPkgs.hedgehog) (hsPkgs.mtl) (hsPkgs.safecopy) - ]; - }; + ]; + }; "examples" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.acid-state) (hsPkgs.cereal) @@ -86,12 +75,12 @@ (hsPkgs.network) (hsPkgs.safecopy) (hsPkgs.time) - ]; + ]; + }; }; - }; benchmarks = { "loading-benchmark" = { - depends = [ + depends = [ (hsPkgs.random) (hsPkgs.directory) (hsPkgs.system-fileio) @@ -100,14 +89,14 @@ (hsPkgs.mtl) (hsPkgs.base) (hsPkgs.acid-state) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/parsonsmatt/acid-state"; rev = "a1b23e2056f134e53f705a694ab85deeecabec5c"; sha256 = "0mgdk8252g7wbb0afyn21pcn3bwh4vainy3h2d0xsv4hlpgqgnw8"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/canonical-json.nix b/nix/.stack.nix/canonical-json.nix index 4071f37be3c..e4be22fbbf8 100644 --- a/nix/.stack.nix/canonical-json.nix +++ b/nix/.stack.nix/canonical-json.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "canonical-json"; - version = "0.6.0.0"; - }; + identifier = { name = "canonical-json"; version = "0.6.0.0"; }; license = "BSD-3-Clause"; copyright = "Copyright 2015-2017 Well-Typed LLP"; maintainer = "duncan@well-typed.com, edsko@well-typed.com"; @@ -22,7 +13,7 @@ synopsis = "Canonical JSON for signing and hashing JSON values"; description = "An implementation of Canonical JSON.\n\n\n\nThe \\\"canonical JSON\\\" format is designed to provide\nrepeatable hashes of JSON-encoded data. It is designed\nfor applications that need to hash, sign or authenitcate\nJSON data structures, including embedded signatures.\n\nCanonical JSON is parsable with any full JSON parser, and\nit allows whitespace for pretty-printed human readable\npresentation, but it can be put into a canonical form\nwhich then has a stable serialised representation and\nthus a stable hash."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -32,8 +23,8 @@ (hsPkgs.deepseq) (hsPkgs.parsec) (hsPkgs.pretty) - ]; - }; + ]; + }; tests = { "tests" = { depends = [ @@ -47,9 +38,9 @@ (hsPkgs.QuickCheck) (hsPkgs.tasty) (hsPkgs.tasty-quickcheck) - ]; + ]; + }; }; - }; benchmarks = { "parse-bench" = { depends = [ @@ -58,14 +49,14 @@ (hsPkgs.canonical-json) (hsPkgs.containers) (hsPkgs.criterion) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/well-typed/canonical-json.git"; rev = "ddfe3593b80b5ceb88842bb7a6f2268df75d2c2f"; sha256 = "02fzn1xskis1lc1pkz0j92v6ipd89ww0k2p3dvwpm3yap5dpnm7k"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-crypto.nix b/nix/.stack.nix/cardano-crypto.nix index 6231bd482bc..d7b9dfbdfc3 100644 --- a/nix/.stack.nix/cardano-crypto.nix +++ b/nix/.stack.nix/cardano-crypto.nix @@ -1,21 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { - flags = { - golden-tests = false; - golden-tests-exe = false; - }; + flags = { golden-tests = false; golden-tests-exe = false; }; package = { specVersion = "1.10"; - identifier = { - name = "cardano-crypto"; - version = "1.1.0"; - }; + identifier = { name = "cardano-crypto"; version = "1.1.0"; }; license = "MIT"; copyright = "2016-2017 IOHK"; maintainer = "contact@typed.io"; @@ -25,7 +13,7 @@ synopsis = "Cryptography primitives for cardano"; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -39,8 +27,8 @@ (hsPkgs.cryptonite-openssl) (hsPkgs.hashable) (hsPkgs.integer-gmp) - ]; - }; + ]; + }; exes = { "golden-tests" = { depends = [ @@ -51,9 +39,9 @@ (hsPkgs.bytestring) (hsPkgs.cryptonite) (hsPkgs.cardano-crypto) - ] ++ pkgs.lib.optional (flags.golden-tests-exe) (hsPkgs.inspector); + ] ++ (pkgs.lib).optional (flags.golden-tests-exe) (hsPkgs.inspector); + }; }; - }; tests = { "cardano-crypto-test" = { depends = [ @@ -64,8 +52,8 @@ (hsPkgs.cardano-crypto) (hsPkgs.basement) (hsPkgs.foundation) - ]; - }; + ]; + }; "cardano-crypto-golden-tests" = { depends = [ (hsPkgs.base) @@ -75,9 +63,9 @@ (hsPkgs.bytestring) (hsPkgs.cryptonite) (hsPkgs.cardano-crypto) - ] ++ pkgs.lib.optional (flags.golden-tests) (hsPkgs.inspector); + ] ++ (pkgs.lib).optional (flags.golden-tests) (hsPkgs.inspector); + }; }; - }; benchmarks = { "cardano-crypto-bench" = { depends = [ @@ -87,14 +75,14 @@ (hsPkgs.cryptonite) (hsPkgs.cardano-crypto) (hsPkgs.gauge) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/cardano-crypto"; rev = "4590efa638397e952a51a8994b5543e4ea3c1ecd"; sha256 = "0hl2n3bba5v2j0lmxhs7hs01z3aznh2bwf9cb434icq2g0bl8ms3"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-report-server.nix b/nix/.stack.nix/cardano-report-server.nix index 53c3e9732ef..8a61ba98ba8 100644 --- a/nix/.stack.nix/cardano-report-server.nix +++ b/nix/.stack.nix/cardano-report-server.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-report-server"; - version = "0.5.10"; - }; + identifier = { name = "cardano-report-server"; version = "0.5.10"; }; license = "BSD-3-Clause"; copyright = "2017-2018 IOHK"; maintainer = "volhovm.cs@gmail.com"; @@ -22,10 +13,10 @@ synopsis = "Reporting server for CSL"; description = "Please see README.md"; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.aeson) (hsPkgs.aeson-pretty) (hsPkgs.base) @@ -56,11 +47,11 @@ (hsPkgs.warp) (hsPkgs.wreq) (hsPkgs.lens-aeson) - ]; - }; + ]; + }; exes = { "cardano-report-server" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.cardano-report-server) (hsPkgs.directory) @@ -75,12 +66,12 @@ (hsPkgs.universum) (hsPkgs.wai-extra) (hsPkgs.warp) - ]; + ]; + }; }; - }; tests = { "cardano-report-server-test" = { - depends = [ + depends = [ (hsPkgs.HUnit) (hsPkgs.QuickCheck) (hsPkgs.aeson) @@ -93,17 +84,17 @@ (hsPkgs.time) (hsPkgs.transformers) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/cardano-report-server.git"; rev = "93f2246c54436e7f98cc363b4e0f8f1cb5e78717"; sha256 = "04zsgrmnlyjymry6fsqnz692hdp89ykqb8jyxib8yklw101gdn3x"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-auxx.nix b/nix/.stack.nix/cardano-sl-auxx.nix index 9879e83e8eb..78e5333e15a 100644 --- a/nix/.stack.nix/cardano-sl-auxx.nix +++ b/nix/.stack.nix/cardano-sl-auxx.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-auxx"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-auxx"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - Auxx"; description = "Cardano SL - Auxx"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -76,11 +67,11 @@ (hsPkgs.unliftio) (hsPkgs.unordered-containers) (hsPkgs.validation) - ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix); + ] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs.unix); build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; exes = { "cardano-auxx" = { depends = [ @@ -98,12 +89,12 @@ (hsPkgs.safe-exceptions) (hsPkgs.universum) (hsPkgs.formatting) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; tests = { "cardano-auxx-test" = { depends = [ @@ -114,12 +105,12 @@ (hsPkgs.cardano-sl-crypto) (hsPkgs.hspec) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { src = .././../auxx; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././auxx; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-binary-test.nix b/nix/.stack.nix/cardano-sl-binary-test.nix index bc250649a63..b510618ff27 100644 --- a/nix/.stack.nix/cardano-sl-binary-test.nix +++ b/nix/.stack.nix/cardano-sl-binary-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-binary-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-binary-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - binary serializarion (tests)"; description = "This package contains test helpers for cardano-sl-binary."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -45,12 +36,10 @@ (hsPkgs.serokell-util) (hsPkgs.text) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; - } // rec { - src = .././../binary/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././binary/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-binary.nix b/nix/.stack.nix/cardano-sl-binary.nix index cefdfdf0df5..08984fea204 100644 --- a/nix/.stack.nix/cardano-sl-binary.nix +++ b/nix/.stack.nix/cardano-sl-binary.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-binary"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-binary"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - binary serialization"; description = "This package defines a type class for binary serialization,\nhelpers and instances."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -51,11 +42,11 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "binary-test" = { depends = [ @@ -83,14 +74,12 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { - src = .././../binary; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././binary; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-chain-test.nix b/nix/.stack.nix/cardano-sl-chain-test.nix index 0939bac8837..6beed6cacd4 100644 --- a/nix/.stack.nix/cardano-sl-chain-test.nix +++ b/nix/.stack.nix/cardano-sl-chain-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-chain-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-chain-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "rupert.horlick@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - arbitrary instances for cardano-sl-chain"; description = "Cardano SL - arbitrary instances for cardano-sl-chain"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -55,9 +46,7 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; + }; }; - }; - } // rec { - src = .././../chain/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././chain/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-chain.nix b/nix/.stack.nix/cardano-sl-chain.nix index fe93d3a95b5..ce8d1880d8b 100644 --- a/nix/.stack.nix/cardano-sl-chain.nix +++ b/nix/.stack.nix/cardano-sl-chain.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-chain"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-chain"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - transaction processing"; description = "Cardano SL - transaction processing"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -77,11 +68,11 @@ (hsPkgs.transformers) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "chain-test" = { depends = [ @@ -118,12 +109,12 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; - }; benchmarks = { "block-bench" = { depends = [ @@ -148,10 +139,8 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../chain; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././chain; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-client.nix b/nix/.stack.nix/cardano-sl-client.nix index c78c041f1fb..af04ea48f96 100644 --- a/nix/.stack.nix/cardano-sl-client.nix +++ b/nix/.stack.nix/cardano-sl-client.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-client"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-client"; version = "3.0.2"; }; license = "MIT"; copyright = "2017 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL client modules"; description = "Cardano SL client modules"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -48,11 +39,11 @@ (hsPkgs.unordered-containers) (hsPkgs.vector) (hsPkgs.QuickCheck) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "cardano-client-test" = { depends = [ @@ -74,14 +65,12 @@ (hsPkgs.QuickCheck) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { - src = .././../client; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././client; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-cluster.nix b/nix/.stack.nix/cardano-sl-cluster.nix index 006a47771f3..90151003ab6 100644 --- a/nix/.stack.nix/cardano-sl-cluster.nix +++ b/nix/.stack.nix/cardano-sl-cluster.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-cluster"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-cluster"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Utilities to generate and run cluster of nodes"; description = "See README"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -54,8 +45,8 @@ (hsPkgs.time) (hsPkgs.tls) (hsPkgs.universum) - ]; - }; + ]; + }; exes = { "cardano-sl-cluster-demo" = { depends = [ @@ -70,8 +61,8 @@ (hsPkgs.formatting) (hsPkgs.lens) (hsPkgs.universum) - ]; - }; + ]; + }; "cardano-sl-cluster-prepare-environment" = { depends = [ (hsPkgs.base) @@ -81,9 +72,9 @@ (hsPkgs.formatting) (hsPkgs.lens) (hsPkgs.universum) - ]; + ]; + }; }; - }; tests = { "cardano-sl-cluster-test" = { depends = [ @@ -97,10 +88,8 @@ (hsPkgs.QuickCheck) (hsPkgs.time) (hsPkgs.universum) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../cluster; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././cluster; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-core-test.nix b/nix/.stack.nix/cardano-sl-core-test.nix index c49e6f4eedf..ed051dfa10b 100644 --- a/nix/.stack.nix/cardano-sl-core-test.nix +++ b/nix/.stack.nix/cardano-sl-core-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-core-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-core-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "IOHK "; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - core functionality (tests)"; description = "QuickCheck Arbitrary instances for the Cardano SL core\nfunctionality."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -48,9 +39,7 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; + }; }; - }; - } // rec { - src = .././../core/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././core/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-core.nix b/nix/.stack.nix/cardano-sl-core.nix index 45de121f85e..f62d67d759c 100644 --- a/nix/.stack.nix/cardano-sl-core.nix +++ b/nix/.stack.nix/cardano-sl-core.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = { asserts = true; }; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-core"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-core"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - core"; description = "Cardano SL - core"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -76,11 +67,11 @@ (hsPkgs.unliftio) (hsPkgs.unliftio-core) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "core-test" = { depends = [ @@ -108,12 +99,12 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { src = .././../core; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././core; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-crypto-test.nix b/nix/.stack.nix/cardano-sl-crypto-test.nix index f0b4c500a63..d07f2d8902a 100644 --- a/nix/.stack.nix/cardano-sl-crypto-test.nix +++ b/nix/.stack.nix/cardano-sl-crypto-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-crypto-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-crypto-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - arbitrary instances for cardano-sl-crypto"; description = "This package contains arbitrary instances for the cryptography primitives used in Cardano SL."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -41,9 +32,7 @@ (hsPkgs.memory) (hsPkgs.quickcheck-instances) (hsPkgs.universum) - ]; + ]; + }; }; - }; - } // rec { - src = .././../crypto/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././crypto/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-crypto.nix b/nix/.stack.nix/cardano-sl-crypto.nix index ee33a246f01..b35a687dbd6 100644 --- a/nix/.stack.nix/cardano-sl-crypto.nix +++ b/nix/.stack.nix/cardano-sl-crypto.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-crypto"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-crypto"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - cryptography primitives"; description = "This package contains cryptography primitives used in Cardano SL."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -54,11 +45,11 @@ (hsPkgs.formatting) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "crypto-test" = { depends = [ @@ -81,13 +72,11 @@ (hsPkgs.text) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; }; - }; - } // rec { - src = .././../crypto; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././crypto; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-db-test.nix b/nix/.stack.nix/cardano-sl-db-test.nix index 1ec784ce38d..33c780e6cb8 100644 --- a/nix/.stack.nix/cardano-sl-db-test.nix +++ b/nix/.stack.nix/cardano-sl-db-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-db-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-db-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "IOHK "; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - arbitrary instances for cardano-sl-db"; description = "Cardano SL - arbitrary instances for cardano-sl-db"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -38,9 +29,7 @@ (hsPkgs.generic-arbitrary) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; + }; }; - }; - } // rec { - src = .././../db/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././db/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-db.nix b/nix/.stack.nix/cardano-sl-db.nix index 6c6e9a0852f..d63254a5217 100644 --- a/nix/.stack.nix/cardano-sl-db.nix +++ b/nix/.stack.nix/cardano-sl-db.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-db"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-db"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - basic DB interfaces"; description = "Cardano SL - basic DB interfaces"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -64,11 +55,11 @@ (hsPkgs.universum) (hsPkgs.unliftio) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "db-test" = { depends = [ @@ -91,8 +82,8 @@ (hsPkgs.temporary) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; + }; }; }; - }; - } // rec { src = .././../db; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././db; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-explorer.nix b/nix/.stack.nix/cardano-sl-explorer.nix index 2085dd650e7..c72d2363ab3 100644 --- a/nix/.stack.nix/cardano-sl-explorer.nix +++ b/nix/.stack.nix/cardano-sl-explorer.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-explorer"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-explorer"; version = "3.0.2"; }; license = "MIT"; copyright = "2017 IOHK"; maintainer = "IOHK "; @@ -22,7 +13,7 @@ synopsis = "Cardano explorer"; description = "Please see README.md"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -76,11 +67,11 @@ (hsPkgs.wai-extra) (hsPkgs.wai-cors) (hsPkgs.warp) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; exes = { "cardano-explorer" = { depends = [ @@ -93,11 +84,11 @@ (hsPkgs.cardano-sl-util) (hsPkgs.optparse-applicative) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; "cardano-explorer-hs2purs" = { depends = [ (hsPkgs.base) @@ -105,11 +96,11 @@ (hsPkgs.purescript-bridge) (hsPkgs.universum) (hsPkgs.optparse-simple) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; "cardano-explorer-swagger" = { depends = [ (hsPkgs.aeson) @@ -123,23 +114,23 @@ (hsPkgs.servant-swagger) (hsPkgs.swagger2) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; "cardano-explorer-mock" = { depends = [ (hsPkgs.base) (hsPkgs.cardano-sl-explorer) (hsPkgs.optparse-applicative) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; tests = { "cardano-explorer-test" = { depends = [ @@ -163,13 +154,13 @@ (hsPkgs.lens) (hsPkgs.universum) (hsPkgs.warp) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; benchmarks = { "cardano-explorer-bench" = { depends = [ @@ -181,13 +172,11 @@ (hsPkgs.criterion) (hsPkgs.universum) (hsPkgs.weigh) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { - src = .././../explorer; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././explorer; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-faucet.nix b/nix/.stack.nix/cardano-sl-faucet.nix index 54040d675ec..d1a184615bf 100644 --- a/nix/.stack.nix/cardano-sl-faucet.nix +++ b/nix/.stack.nix/cardano-sl-faucet.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-faucet"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-faucet"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "ben.ford@tweag.io"; @@ -22,7 +13,7 @@ synopsis = ""; description = "Cardano SL - faucet"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -71,8 +62,8 @@ (hsPkgs.wai) (hsPkgs.wai-app-static) (hsPkgs.wreq) - ]; - }; + ]; + }; exes = { "cardano-faucet" = { depends = [ @@ -92,9 +83,9 @@ (hsPkgs.text) (hsPkgs.universum) (hsPkgs.warp) - ]; + ]; + }; }; - }; tests = { "faucet-test" = { depends = [ @@ -106,10 +97,8 @@ (hsPkgs.hspec) (hsPkgs.time) (hsPkgs.universum) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../faucet; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././faucet; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-generator.nix b/nix/.stack.nix/cardano-sl-generator.nix index 8b0de67f096..323cd4d72df 100644 --- a/nix/.stack.nix/cardano-sl-generator.nix +++ b/nix/.stack.nix/cardano-sl-generator.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-generator"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-generator"; version = "3.0.2"; }; license = "MIT"; copyright = "2017 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - arbitrary data generation"; description = "Cardano SL - arbitrary data generation"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -59,11 +50,11 @@ (hsPkgs.unliftio) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; exes = { "cardano-sl-verification-bench-exe" = { depends = [ @@ -87,12 +78,12 @@ (hsPkgs.text) (hsPkgs.time-units) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; tests = { "cardano-generator-test" = { depends = [ @@ -119,13 +110,13 @@ (hsPkgs.serokell-util) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; benchmarks = { "cardano-sl-verification-bench" = { depends = [ @@ -144,13 +135,11 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.serokell-util) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { - src = .././../generator; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././generator; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-infra-test.nix b/nix/.stack.nix/cardano-sl-infra-test.nix index bbfb5f4af89..5d3a0f13e03 100644 --- a/nix/.stack.nix/cardano-sl-infra-test.nix +++ b/nix/.stack.nix/cardano-sl-infra-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-infra-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-infra-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "IOHK "; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - generators for cardano-sl-infra"; description = "This package contains generators for the infrastructural data types used in Cardano SL."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -49,9 +40,7 @@ (hsPkgs.kademlia) (hsPkgs.universum) (hsPkgs.yaml) - ]; + ]; + }; }; - }; - } // rec { - src = .././../infra/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././infra/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-infra.nix b/nix/.stack.nix/cardano-sl-infra.nix index bc62455d0c8..bddf75797f4 100644 --- a/nix/.stack.nix/cardano-sl-infra.nix +++ b/nix/.stack.nix/cardano-sl-infra.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-infra"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-infra"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - infrastructural"; description = "Cardano SL - infrastructural"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -78,11 +69,11 @@ (hsPkgs.unliftio) (hsPkgs.unordered-containers) (hsPkgs.yaml) - ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix); + ] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs.unix); build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "infra-test" = { depends = [ @@ -110,10 +101,8 @@ (hsPkgs.kademlia) (hsPkgs.universum) (hsPkgs.yaml) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../infra; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././infra; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-mnemonic.nix b/nix/.stack.nix/cardano-sl-mnemonic.nix index 7d817627818..08db79e991d 100644 --- a/nix/.stack.nix/cardano-sl-mnemonic.nix +++ b/nix/.stack.nix/cardano-sl-mnemonic.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-mnemonic"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-mnemonic"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "TODO"; description = "See README"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -45,8 +36,8 @@ (hsPkgs.text) (hsPkgs.time) (hsPkgs.universum) - ]; - }; + ]; + }; exes = { "cardano-generate-mnemonic" = { depends = [ @@ -56,9 +47,9 @@ (hsPkgs.bytestring) (hsPkgs.text) (hsPkgs.universum) - ]; + ]; + }; }; - }; tests = { "cardano-sl-mnemonic-test" = { depends = [ @@ -72,10 +63,8 @@ (hsPkgs.data-default) (hsPkgs.aeson) (hsPkgs.cardano-crypto) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../mnemonic; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././mnemonic; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-networking.nix b/nix/.stack.nix/cardano-sl-networking.nix index 6745b6f8705..917303f49a4 100644 --- a/nix/.stack.nix/cardano-sl-networking.nix +++ b/nix/.stack.nix/cardano-sl-networking.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = { benchmarks = false; }; package = { specVersion = "1.20"; - identifier = { - name = "cardano-sl-networking"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-networking"; version = "3.0.2"; }; license = "MIT"; copyright = ""; maintainer = ""; @@ -22,7 +13,7 @@ synopsis = ""; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -56,8 +47,8 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; - }; + ]; + }; exes = { "ping-pong" = { depends = [ @@ -71,8 +62,8 @@ (hsPkgs.network-transport) (hsPkgs.network-transport-tcp) (hsPkgs.random) - ]; - }; + ]; + }; "bench-sender" = { depends = [ (hsPkgs.async) @@ -90,8 +81,8 @@ (hsPkgs.serokell-util) (hsPkgs.time) (hsPkgs.time-units) - ]; - }; + ]; + }; "bench-receiver" = { depends = [ (hsPkgs.base) @@ -103,8 +94,8 @@ (hsPkgs.safe-exceptions) (hsPkgs.serokell-util) (hsPkgs.text) - ]; - }; + ]; + }; "bench-log-reader" = { depends = [ (hsPkgs.base) @@ -121,9 +112,9 @@ (hsPkgs.text) (hsPkgs.formatting) (hsPkgs.unliftio-core) - ]; + ]; + }; }; - }; tests = { "cardano-sl-networking-test" = { depends = [ @@ -146,12 +137,12 @@ (hsPkgs.serokell-util) (hsPkgs.stm) (hsPkgs.time-units) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; - }; benchmarks = { "qdisc-simulation" = { depends = [ @@ -165,10 +156,8 @@ (hsPkgs.statistics) (hsPkgs.vector) (hsPkgs.time) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../networking; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././networking; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-node-ipc.nix b/nix/.stack.nix/cardano-sl-node-ipc.nix index 0841e203649..d976fea8e46 100644 --- a/nix/.stack.nix/cardano-sl-node-ipc.nix +++ b/nix/.stack.nix/cardano-sl-node-ipc.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-node-ipc"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-node-ipc"; version = "3.0.2"; }; license = "MIT"; copyright = ""; maintainer = "cleverca22@gmail.com"; @@ -22,7 +13,7 @@ synopsis = ""; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -35,9 +26,7 @@ (hsPkgs.Cabal) (hsPkgs.mtl) (hsPkgs.universum) - ]; + ]; + }; }; - }; - } // rec { - src = .././../node-ipc; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././node-ipc; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-node.nix b/nix/.stack.nix/cardano-sl-node.nix index 7fe15a486f5..1861cd309c9 100644 --- a/nix/.stack.nix/cardano-sl-node.nix +++ b/nix/.stack.nix/cardano-sl-node.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-node"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-node"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "Serokell "; @@ -22,7 +13,7 @@ synopsis = "Cardano SL simple node executable"; description = "Provides a 'cardano-node-simple' executable which can\nconnect to the Cardano network and act as a full node\nbut does not have any wallet capabilities."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -62,8 +53,8 @@ (hsPkgs.warp) (hsPkgs.x509) (hsPkgs.x509-store) - ]; - }; + ]; + }; exes = { "cardano-node-simple" = { depends = [ @@ -74,12 +65,12 @@ (hsPkgs.cardano-sl-node) (hsPkgs.cardano-sl) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; tests = { "property-tests" = { depends = [ @@ -97,8 +88,8 @@ (hsPkgs.text) (hsPkgs.universum) (hsPkgs.validation) - ]; + ]; + }; }; }; - }; - } // rec { src = .././../node; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././node; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-script-runner.nix b/nix/.stack.nix/cardano-sl-script-runner.nix index c7cb31624e0..4010094fe13 100644 --- a/nix/.stack.nix/cardano-sl-script-runner.nix +++ b/nix/.stack.nix/cardano-sl-script-runner.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-script-runner"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-script-runner"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - Script Runner"; description = "Cardano SL - ScriptRunner"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -63,8 +54,8 @@ (hsPkgs.vector) (hsPkgs.vty) (hsPkgs.yaml) - ]; - }; + ]; + }; exes = { "testcases" = { depends = [ @@ -87,10 +78,8 @@ (hsPkgs.time-units) (hsPkgs.turtle) (hsPkgs.universum) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../script-runner; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././script-runner; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-tools-post-mortem.nix b/nix/.stack.nix/cardano-sl-tools-post-mortem.nix index 81168d88387..0217f20a864 100644 --- a/nix/.stack.nix/cardano-sl-tools-post-mortem.nix +++ b/nix/.stack.nix/cardano-sl-tools-post-mortem.nix @@ -1,20 +1,12 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { - flags = { - for-installer = false; - }; + flags = { for-installer = false; }; package = { specVersion = "1.10"; identifier = { name = "cardano-sl-tools-post-mortem"; version = "3.0.2"; - }; + }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -24,11 +16,11 @@ synopsis = "Cardano SL - post-mortem tool"; description = "Cardano SL - post-mortem tool"; buildType = "Simple"; - }; + }; components = { exes = { "cardano-post-mortem" = { - depends = pkgs.lib.optionals (!flags.for-installer) [ + depends = (pkgs.lib).optionals (!flags.for-installer) [ (hsPkgs.Chart) (hsPkgs.Chart-diagrams) (hsPkgs.MonadRandom) @@ -55,10 +47,8 @@ (hsPkgs.text) (hsPkgs.time-units) (hsPkgs.universum) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../tools/post-mortem; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././tools/post-mortem; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-tools.nix b/nix/.stack.nix/cardano-sl-tools.nix index 75eedf65c61..cba3136d737 100644 --- a/nix/.stack.nix/cardano-sl-tools.nix +++ b/nix/.stack.nix/cardano-sl-tools.nix @@ -1,20 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { - flags = { - for-installer = false; - }; + flags = { for-installer = false; }; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-tools"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-tools"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -24,7 +13,7 @@ synopsis = "Cardano SL - Tools"; description = "Cardano SL - Tools"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -39,8 +28,8 @@ (hsPkgs.text) (hsPkgs.trifecta) (hsPkgs.universum) - ]; - }; + ]; + }; exes = { "cardano-genupdate" = { depends = [ @@ -59,10 +48,10 @@ (hsPkgs.text) (hsPkgs.universum) (hsPkgs.unix-compat) - ]; - }; + ]; + }; "cardano-keygen" = { - depends = pkgs.lib.optionals (!flags.for-installer) [ + depends = (pkgs.lib).optionals (!flags.for-installer) [ (hsPkgs.base) (hsPkgs.base58-bytestring) (hsPkgs.bytestring) @@ -81,8 +70,8 @@ (hsPkgs.serokell-util) (hsPkgs.text) (hsPkgs.universum) - ]; - }; + ]; + }; "cardano-launcher" = { depends = [ (hsPkgs.aeson) @@ -115,10 +104,10 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.yaml) - ] ++ (if !system.isWindows + ] ++ (if !system.isWindows then [ (hsPkgs.unix) ] else [ (hsPkgs.Win32) ]); - }; + }; "cardano-addr-convert" = { depends = [ (hsPkgs.base) @@ -131,10 +120,10 @@ (hsPkgs.optparse-applicative) (hsPkgs.text) (hsPkgs.universum) - ]; - }; + ]; + }; "cardano-cli-docs" = { - depends = pkgs.lib.optionals (!flags.for-installer) [ + depends = (pkgs.lib).optionals (!flags.for-installer) [ (hsPkgs.base) (hsPkgs.cardano-sl) (hsPkgs.directory) @@ -144,13 +133,13 @@ (hsPkgs.process) (hsPkgs.text) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; "cardano-blockchain-analyser" = { - depends = pkgs.lib.optionals (!flags.for-installer) [ + depends = (pkgs.lib).optionals (!flags.for-installer) [ (hsPkgs.ansi-wl-pprint) (hsPkgs.base) (hsPkgs.cardano-sl) @@ -170,11 +159,11 @@ (hsPkgs.tabl) (hsPkgs.text) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; "cardano-x509-certificates" = { depends = [ (hsPkgs.base) @@ -182,17 +171,17 @@ (hsPkgs.filepath) (hsPkgs.optparse-applicative) (hsPkgs.universum) - ]; - }; + ]; + }; "genesis-hash" = { - depends = pkgs.lib.optionals (!flags.for-installer) [ + depends = (pkgs.lib).optionals (!flags.for-installer) [ (hsPkgs.base) (hsPkgs.universum) (hsPkgs.bytestring) (hsPkgs.cryptonite) (hsPkgs.canonical-json) - ]; - }; + ]; + }; "wallet-extractor" = { depends = [ (hsPkgs.base) @@ -200,9 +189,9 @@ (hsPkgs.text) (hsPkgs.cardano-sl) (hsPkgs.cardano-sl-util) - ]; + ]; + }; }; - }; tests = { "cardano-sl-tools-test" = { depends = [ @@ -213,13 +202,11 @@ (hsPkgs.directory) (hsPkgs.hspec) (hsPkgs.temporary) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { - src = .././../tools; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././tools; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-util-test.nix b/nix/.stack.nix/cardano-sl-util-test.nix index 3a9b6cf7a51..3afc6ca5e00 100644 --- a/nix/.stack.nix/cardano-sl-util-test.nix +++ b/nix/.stack.nix/cardano-sl-util-test.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-util-test"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-util-test"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "hi@serokell.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - general utilities (tests)"; description = "QuickCheck Arbitrary instances for the Cardano SL general\nutilities package."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -53,12 +44,10 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.yaml) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; - } // rec { - src = .././../util/test; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././util/test; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-util.nix b/nix/.stack.nix/cardano-sl-util.nix index 908183f2683..84bc9d73798 100644 --- a/nix/.stack.nix/cardano-sl-util.nix +++ b/nix/.stack.nix/cardano-sl-util.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-util"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-util"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "support@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Cardano SL - general utilities"; description = "This package contains utility functions not specific\nto Cardano SL which extend 3rd party libraries or implement\nsomething from scratch."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -70,11 +61,11 @@ (hsPkgs.unliftio-core) (hsPkgs.unordered-containers) (hsPkgs.yaml) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "util-test" = { depends = [ @@ -104,12 +95,12 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.yaml) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { src = .././../util; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././util; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-utxo.nix b/nix/.stack.nix/cardano-sl-utxo.nix index 4b2439b32ac..d1c5cb00a47 100644 --- a/nix/.stack.nix/cardano-sl-utxo.nix +++ b/nix/.stack.nix/cardano-sl-utxo.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-utxo"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-utxo"; version = "3.0.2"; }; license = "MIT"; copyright = "2017-2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Abstract definitions of UTxO based accounting"; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -51,7 +42,7 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; + }; }; - }; - } // rec { src = .././../utxo; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././utxo; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl-wallet-new.nix b/nix/.stack.nix/cardano-sl-wallet-new.nix deleted file mode 100644 index a987b1a62e6..00000000000 --- a/nix/.stack.nix/cardano-sl-wallet-new.nix +++ /dev/null @@ -1,285 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.10"; - identifier = { - name = "cardano-sl-wallet-new"; - version = "2.0.0"; - }; - license = "MIT"; - copyright = "2018 IOHK"; - maintainer = "operations@iohk.io"; - author = "IOHK Engineering Team"; - homepage = "https://github.com/input-output-hk/cardano-sl/#readme"; - url = ""; - synopsis = "The Wallet Backend for a Cardano node."; - description = "Please see README.md"; - buildType = "Simple"; - }; - components = { - "library" = { - depends = [ - (hsPkgs.base) - (hsPkgs.binary) - (hsPkgs.acid-state) - (hsPkgs.aeson) - (hsPkgs.aeson-options) - (hsPkgs.aeson-pretty) - (hsPkgs.async) - (hsPkgs.base58-bytestring) - (hsPkgs.basement) - (hsPkgs.beam-core) - (hsPkgs.beam-migrate) - (hsPkgs.beam-sqlite) - (hsPkgs.bifunctors) - (hsPkgs.bytestring) - (hsPkgs.cardano-crypto) - (hsPkgs.cardano-sl) - (hsPkgs.cardano-sl-binary) - (hsPkgs.cardano-sl-chain) - (hsPkgs.cardano-sl-client) - (hsPkgs.cardano-sl-core) - (hsPkgs.cardano-sl-core-test) - (hsPkgs.cardano-sl-crypto) - (hsPkgs.cardano-sl-db) - (hsPkgs.cardano-sl-infra) - (hsPkgs.cardano-sl-mnemonic) - (hsPkgs.cardano-sl-networking) - (hsPkgs.cardano-sl-node-ipc) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-utxo) - (hsPkgs.cardano-sl-x509) - (hsPkgs.cereal) - (hsPkgs.clock) - (hsPkgs.conduit) - (hsPkgs.connection) - (hsPkgs.containers) - (hsPkgs.cryptonite) - (hsPkgs.data-default) - (hsPkgs.data-default-class) - (hsPkgs.directory) - (hsPkgs.exceptions) - (hsPkgs.foldl) - (hsPkgs.formatting) - (hsPkgs.formatting) - (hsPkgs.filepath) - (hsPkgs.generics-sop) - (hsPkgs.http-api-data) - (hsPkgs.http-client) - (hsPkgs.http-client-tls) - (hsPkgs.http-types) - (hsPkgs.ixset-typed) - (hsPkgs.lens) - (hsPkgs.memory) - (hsPkgs.mtl) - (hsPkgs.mwc-random) - (hsPkgs.neat-interpolation) - (hsPkgs.optparse-applicative) - (hsPkgs.QuickCheck) - (hsPkgs.QuickCheck) - (hsPkgs.reflection) - (hsPkgs.resourcet) - (hsPkgs.retry) - (hsPkgs.safecopy) - (hsPkgs.safe-exceptions) - (hsPkgs.serokell-util) - (hsPkgs.servant) - (hsPkgs.servant-client) - (hsPkgs.servant-client-core) - (hsPkgs.servant-server) - (hsPkgs.servant-swagger) - (hsPkgs.servant-swagger-ui) - (hsPkgs.servant-swagger-ui-core) - (hsPkgs.servant-swagger-ui-redoc) - (hsPkgs.sqlite-simple) - (hsPkgs.sqlite-simple-errors) - (hsPkgs.stm) - (hsPkgs.stm-chans) - (hsPkgs.strict) - (hsPkgs.strict-concurrency) - (hsPkgs.swagger2) - (hsPkgs.tar) - (hsPkgs.text) - (hsPkgs.time) - (hsPkgs.time-units) - (hsPkgs.tls) - (hsPkgs.transformers) - (hsPkgs.universum) - (hsPkgs.unliftio-core) - (hsPkgs.unordered-containers) - (hsPkgs.vector) - (hsPkgs.wai) - (hsPkgs.wai-middleware-throttle) - (hsPkgs.warp) - (hsPkgs.x509) - (hsPkgs.x509-store) - (hsPkgs.zlib) - ]; - }; - exes = { - "cardano-node" = { - depends = [ - (hsPkgs.cardano-sl) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-wallet-new) - (hsPkgs.universum) - ]; - }; - "cardano-generate-swagger-file" = { - depends = [ - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.aeson) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-chain) - (hsPkgs.cardano-sl-wallet-new) - (hsPkgs.optparse-applicative) - (hsPkgs.swagger2) - (hsPkgs.universum) - ]; - }; - "wal-integr-test" = { - depends = [ - (hsPkgs.base) - (hsPkgs.QuickCheck) - (hsPkgs.aeson) - (hsPkgs.aeson-diff) - (hsPkgs.aeson-pretty) - (hsPkgs.async) - (hsPkgs.bytestring) - (hsPkgs.cardano-sl) - (hsPkgs.cardano-sl-chain) - (hsPkgs.cardano-sl-core) - (hsPkgs.cardano-sl-crypto) - (hsPkgs.cardano-sl-mnemonic) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-wallet-new) - (hsPkgs.containers) - (hsPkgs.exceptions) - (hsPkgs.formatting) - (hsPkgs.hspec) - (hsPkgs.http-client) - (hsPkgs.http-types) - (hsPkgs.lens) - (hsPkgs.memory) - (hsPkgs.mtl) - (hsPkgs.optparse-applicative) - (hsPkgs.pretty-show) - (hsPkgs.serokell-util) - (hsPkgs.servant) - (hsPkgs.servant-client) - (hsPkgs.servant-quickcheck) - (hsPkgs.servant-server) - (hsPkgs.text) - (hsPkgs.formatting) - (hsPkgs.universum) - (hsPkgs.x509-store) - ]; - }; - }; - tests = { - "wallet-unit-tests" = { - depends = [ - (hsPkgs.acid-state) - (hsPkgs.async) - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.cardano-crypto) - (hsPkgs.cardano-sl) - (hsPkgs.cardano-sl-binary) - (hsPkgs.cardano-sl-chain) - (hsPkgs.cardano-sl-chain-test) - (hsPkgs.cardano-sl-client) - (hsPkgs.cardano-sl-core) - (hsPkgs.cardano-sl-core-test) - (hsPkgs.cardano-sl-crypto) - (hsPkgs.cardano-sl-db) - (hsPkgs.cardano-sl-infra) - (hsPkgs.cardano-sl-mnemonic) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-util-test) - (hsPkgs.cardano-sl-utxo) - (hsPkgs.cardano-sl-wallet-new) - (hsPkgs.cereal) - (hsPkgs.containers) - (hsPkgs.cryptonite) - (hsPkgs.data-default) - (hsPkgs.formatting) - (hsPkgs.hspec) - (hsPkgs.hspec-core) - (hsPkgs.lens) - (hsPkgs.mtl) - (hsPkgs.QuickCheck) - (hsPkgs.quickcheck-instances) - (hsPkgs.safe-exceptions) - (hsPkgs.safecopy) - (hsPkgs.serokell-util) - (hsPkgs.servant-server) - (hsPkgs.tabl) - (hsPkgs.text) - (hsPkgs.time-units) - (hsPkgs.formatting) - (hsPkgs.universum) - (hsPkgs.vector) - (hsPkgs.bytestring) - (hsPkgs.conduit) - (hsPkgs.directory) - (hsPkgs.filepath) - (hsPkgs.normaldistribution) - (hsPkgs.optparse-applicative) - (hsPkgs.random) - (hsPkgs.time) - ]; - }; - "wallet-new-specs" = { - depends = [ - (hsPkgs.base) - (hsPkgs.aeson) - (hsPkgs.bytestring) - (hsPkgs.cardano-crypto) - (hsPkgs.cardano-sl) - (hsPkgs.cardano-sl-client) - (hsPkgs.cardano-sl-client) - (hsPkgs.cardano-sl-chain-test) - (hsPkgs.cardano-sl-core) - (hsPkgs.cardano-sl-core-test) - (hsPkgs.cardano-sl-crypto) - (hsPkgs.cardano-sl-chain) - (hsPkgs.cardano-sl-util) - (hsPkgs.cardano-sl-util-test) - (hsPkgs.cardano-sl-wallet-new) - (hsPkgs.cereal) - (hsPkgs.data-default) - (hsPkgs.directory) - (hsPkgs.directory) - (hsPkgs.formatting) - (hsPkgs.hedgehog) - (hsPkgs.hspec) - (hsPkgs.insert-ordered-containers) - (hsPkgs.lens) - (hsPkgs.QuickCheck) - (hsPkgs.quickcheck-instances) - (hsPkgs.safecopy) - (hsPkgs.safe-exceptions) - (hsPkgs.servant) - (hsPkgs.servant-server) - (hsPkgs.servant-swagger) - (hsPkgs.string-conv) - (hsPkgs.swagger2) - (hsPkgs.text) - (hsPkgs.time) - (hsPkgs.universum) - ]; - }; - }; - }; - } // rec { - src = .././../wallet; - } diff --git a/nix/.stack.nix/cardano-sl-x509.nix b/nix/.stack.nix/cardano-sl-x509.nix index 44c5b3d234f..edba616c142 100644 --- a/nix/.stack.nix/cardano-sl-x509.nix +++ b/nix/.stack.nix/cardano-sl-x509.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl-x509"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl-x509"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "Tool-suite for generating x509 certificates specialized for RSA with SHA-256"; description = "See README"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -44,8 +35,8 @@ (hsPkgs.x509-store) (hsPkgs.x509-validation) (hsPkgs.yaml) - ]; - }; + ]; + }; tests = { "cardano-sl-x509-test" = { depends = [ @@ -55,8 +46,8 @@ (hsPkgs.universum) (hsPkgs.hedgehog) (hsPkgs.cardano-sl-util-test) - ]; + ]; + }; }; }; - }; - } // rec { src = .././../x509; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././x509; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-sl.nix b/nix/.stack.nix/cardano-sl.nix index d86d8c7f407..4bf3066aad8 100644 --- a/nix/.stack.nix/cardano-sl.nix +++ b/nix/.stack.nix/cardano-sl.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-sl"; - version = "3.0.2"; - }; + identifier = { name = "cardano-sl"; version = "3.0.2"; }; license = "MIT"; copyright = "2016 IOHK"; maintainer = "Serokell "; @@ -22,7 +13,7 @@ synopsis = "Cardano SL main implementation"; description = "Please see README.md"; buildType = "Simple"; - }; + }; components = { "library" = { depends = ([ @@ -115,11 +106,11 @@ (hsPkgs.x509-validation) (hsPkgs.yaml) (hsPkgs.cborg) - ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix)) ++ pkgs.lib.optional (!system.isWindows && !system.isFreebsd) (hsPkgs.systemd); + ] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs.unix)) ++ (pkgs.lib).optional (!system.isWindows && !system.isFreebsd) (hsPkgs.systemd); build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; - }; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; tests = { "cardano-test" = { depends = [ @@ -167,13 +158,13 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; - }; benchmarks = { "cardano-bench-criterion" = { depends = [ @@ -200,11 +191,11 @@ (hsPkgs.network-transport-inmemory) (hsPkgs.optparse-applicative) (hsPkgs.universum) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.cpphs) - ]; + (hsPkgs.buildPackages.cpphs or (pkgs.buildPackages.cpphs)) + ]; + }; }; }; - }; - } // rec { src = .././../lib; } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././lib; } \ No newline at end of file diff --git a/nix/.stack.nix/cardano-wallet.nix b/nix/.stack.nix/cardano-wallet.nix index 2d1a53def45..5ff836ed781 100644 --- a/nix/.stack.nix/cardano-wallet.nix +++ b/nix/.stack.nix/cardano-wallet.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "cardano-wallet"; - version = "3.0.2"; - }; + identifier = { name = "cardano-wallet"; version = "3.0.2"; }; license = "MIT"; copyright = "2018 IOHK"; maintainer = "operations@iohk.io"; @@ -22,7 +13,7 @@ synopsis = "The Wallet Backend for a Cardano node."; description = "Please see README.md"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -118,8 +109,8 @@ (hsPkgs.warp) (hsPkgs.x509) (hsPkgs.zlib) - ]; - }; + ]; + }; exes = { "cardano-node" = { depends = [ @@ -128,8 +119,8 @@ (hsPkgs.cardano-sl-util) (hsPkgs.cardano-wallet) (hsPkgs.universum) - ]; - }; + ]; + }; "cardano-generate-swagger-file" = { depends = [ (hsPkgs.base) @@ -141,9 +132,9 @@ (hsPkgs.optparse-applicative) (hsPkgs.swagger2) (hsPkgs.universum) - ]; + ]; + }; }; - }; tests = { "unit" = { depends = [ @@ -198,8 +189,8 @@ (hsPkgs.time-units) (hsPkgs.universum) (hsPkgs.vector) - ]; - }; + ]; + }; "nightly" = { depends = [ (hsPkgs.base) @@ -215,8 +206,8 @@ (hsPkgs.serokell-util) (hsPkgs.text) (hsPkgs.universum) - ]; - }; + ]; + }; "integration" = { depends = [ (hsPkgs.base) @@ -251,10 +242,8 @@ (hsPkgs.template-haskell) (hsPkgs.text) (hsPkgs.universum) - ]; + ]; + }; }; }; - }; - } // rec { - src = .././../wallet; - } \ No newline at end of file + } // rec { src = (pkgs.lib).mkDefault ../.././wallet; } \ No newline at end of file diff --git a/nix/.stack.nix/clock.nix b/nix/.stack.nix/clock.nix index eaf4aec8fe5..b64b1456319 100644 --- a/nix/.stack.nix/clock.nix +++ b/nix/.stack.nix/clock.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = { llvm = false; }; package = { specVersion = "1.8"; - identifier = { - name = "clock"; - version = "0.7.2"; - }; + identifier = { name = "clock"; version = "0.7.2"; }; license = "BSD-3-Clause"; copyright = "Copyright © Cetin Sert 2009-2016, Eugene Kirpichov 2010, Finn Espen Gundersen 2013, Gerolf Seitz 2013, Mathieu Boespflug 2014 2015, Chris Done 2015, Dimitri Sabadie 2015, Christian Burger 2015, Mario Longobardi 2016"; maintainer = "Cetin Sert , Corsis Research"; @@ -22,40 +13,36 @@ synopsis = "High-resolution clock functions: monotonic, realtime, cputime."; description = "A package for convenient access to high-resolution clock and\ntimer functions of different operating systems via a unified API.\n\nPOSIX code and surface API was developed by Cetin Sert in 2009.\n\nWindows code was contributed by Eugene Kirpichov in 2010.\n\nFreeBSD code was contributed by Finn Espen Gundersen on 2013-10-14.\n\nOS X code was contributed by Gerolf Seitz on 2013-10-15.\n\nDerived @Generic@, @Typeable@ and other instances for @Clock@ and @TimeSpec@ was contributed by Mathieu Boespflug on 2014-09-17.\n\nCorrected dependency listing for @GHC < 7.6@ was contributed by Brian McKenna on 2014-09-30.\n\nWindows code corrected by Dimitri Sabadie on 2015-02-09.\n\nAdded @timeSpecAsNanoSecs@ as observed widely-used by Chris Done on 2015-01-06, exported correctly on 2015-04-20.\n\nImported Control.Applicative operators correctly for Haskell Platform on Windows on 2015-04-21.\n\nUnit tests and instance fixes by Christian Burger on 2015-06-25.\n\nRemoval of fromInteger : Integer -> TimeSpec by Cetin Sert on 2015-12-15.\n\nNew Linux-specific Clocks: MonotonicRaw, Boottime, MonotonicCoarse, RealtimeCoarse by Cetin Sert on 2015-12-15.\n\nReintroduction fromInteger : Integer -> TimeSpec by Cetin Sert on 2016-04-05.\n\nFixes for older Linux build failures introduced by new Linux-specific clocks by Mario Longobardi on 2016-04-18.\n\n[Version Scheme]\nMajor-@/R/@-ewrite . New-@/F/@-unctionality . @/I/@-mprovementAndBugFixes . @/P/@-ackagingOnly\n\n* @PackagingOnly@ changes are made for quality assurance reasons."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) - ] ++ pkgs.lib.optionals (compiler.isGhc && compiler.version.lt "7.6") [ + ] ++ (pkgs.lib).optionals (compiler.isGhc && (compiler.version).lt "7.6") [ (hsPkgs.base) (hsPkgs.ghc-prim) - ]; - }; + ]; + }; tests = { "test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.tasty) (hsPkgs.tasty-quickcheck) (hsPkgs.clock) - ]; + ]; + }; }; - }; benchmarks = { "benchmarks" = { - depends = [ - (hsPkgs.base) - (hsPkgs.criterion) - (hsPkgs.clock) - ]; + depends = [ (hsPkgs.base) (hsPkgs.criterion) (hsPkgs.clock) ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/corsis/clock.git"; rev = "ef60bd51a3587a173adf565c33bf2886df6e3842"; sha256 = "1r4n9imls483f7wd61fi1jk16z2k7w36gpx798sqidvwbnc831q1"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/default.nix b/nix/.stack.nix/default.nix new file mode 100644 index 00000000000..b6bb51d9cc6 --- /dev/null +++ b/nix/.stack.nix/default.nix @@ -0,0 +1,92 @@ +{ + extras = hackage: + { + packages = { + "fmt" = (((hackage.fmt)."0.6").revisions).default; + "servant-multipart" = (((hackage.servant-multipart)."0.11.2").revisions).default; + "normaldistribution" = (((hackage.normaldistribution)."1.1.0.3").revisions).default; + "aeson-options" = (((hackage.aeson-options)."0.0.0").revisions).default; + "servant-swagger-ui-redoc" = (((hackage.servant-swagger-ui-redoc)."0.3.0.1.21.2").revisions).default; + "wai-middleware-throttle" = (((hackage.wai-middleware-throttle)."0.3.0.0").revisions).default; + "ether" = (((hackage.ether)."0.5.1.0").revisions).default; + "servant-quickcheck" = (((hackage.servant-quickcheck)."0.0.7.2").revisions).default; + "o-clock" = (((hackage.o-clock)."0.1.1").revisions).default; + "beam-sqlite" = (((hackage.beam-sqlite)."0.3.2.3").revisions).default; + "katip" = (((hackage.katip)."0.6.3.0").revisions).default; + "Chart" = (((hackage.Chart)."1.9").revisions).default; + "Chart-diagrams" = (((hackage.Chart-diagrams)."1.9").revisions).default; + "SVGFonts" = (((hackage.SVGFonts)."1.6.0.3").revisions).default; + "pvss" = (((hackage.pvss)."0.2.0").revisions).default; + "systemd" = (((hackage.systemd)."1.1.2").revisions).default; + "base58-bytestring" = (((hackage.base58-bytestring)."0.1.0").revisions).default; + "pipes-interleave" = (((hackage.pipes-interleave)."1.1.3").revisions).default; + "tabl" = (((hackage.tabl)."1.0.3").revisions).default; + "loc" = (((hackage.loc)."0.1.3.3").revisions).default; + "hspec" = (((hackage.hspec)."2.5.5").revisions).default; + "micro-recursion-schemes" = (((hackage.micro-recursion-schemes)."5.0.2.2").revisions).default; + "token-bucket" = (((hackage.token-bucket)."0.1.0.1").revisions).default; + "lzma-clib" = (((hackage.lzma-clib)."5.2.2").revisions).default; + "megaparsec" = (((hackage.megaparsec)."7.0.4").revisions).default; + "neat-interpolation" = (((hackage.neat-interpolation)."0.3.2.4").revisions).default; + "config-ini" = (((hackage.config-ini)."0.2.4.0").revisions).default; + "stylish-haskell" = (((hackage.stylish-haskell)."0.9.2.2").revisions).default; + } // { + cardano-sl-util = ./cardano-sl-util.nix; + cardano-sl-util-test = ./cardano-sl-util-test.nix; + cardano-sl-networking = ./cardano-sl-networking.nix; + cardano-sl-binary = ./cardano-sl-binary.nix; + cardano-sl-binary-test = ./cardano-sl-binary-test.nix; + cardano-sl-crypto = ./cardano-sl-crypto.nix; + cardano-sl-crypto-test = ./cardano-sl-crypto-test.nix; + cardano-sl-core = ./cardano-sl-core.nix; + cardano-sl-core-test = ./cardano-sl-core-test.nix; + cardano-sl-db = ./cardano-sl-db.nix; + cardano-sl-db-test = ./cardano-sl-db-test.nix; + cardano-sl-infra = ./cardano-sl-infra.nix; + cardano-sl-infra-test = ./cardano-sl-infra-test.nix; + cardano-sl-chain = ./cardano-sl-chain.nix; + cardano-sl-chain-test = ./cardano-sl-chain-test.nix; + cardano-sl = ./cardano-sl.nix; + cardano-sl-generator = ./cardano-sl-generator.nix; + cardano-sl-client = ./cardano-sl-client.nix; + cardano-sl-auxx = ./cardano-sl-auxx.nix; + cardano-sl-script-runner = ./cardano-sl-script-runner.nix; + cardano-sl-explorer = ./cardano-sl-explorer.nix; + cardano-sl-node = ./cardano-sl-node.nix; + cardano-sl-tools = ./cardano-sl-tools.nix; + cardano-sl-tools-post-mortem = ./cardano-sl-tools-post-mortem.nix; + cardano-sl-utxo = ./cardano-sl-utxo.nix; + cardano-wallet = ./cardano-wallet.nix; + cardano-sl-node-ipc = ./cardano-sl-node-ipc.nix; + cardano-sl-faucet = ./cardano-sl-faucet.nix; + acid-state-exts = ./acid-state-exts.nix; + cardano-sl-x509 = ./cardano-sl-x509.nix; + cardano-sl-cluster = ./cardano-sl-cluster.nix; + cardano-sl-mnemonic = ./cardano-sl-mnemonic.nix; + cardano-report-server = ./cardano-report-server.nix; + cardano-crypto = ./cardano-crypto.nix; + ip = ./ip.nix; + time-units = ./time-units.nix; + kademlia = ./kademlia.nix; + network-transport = ./network-transport.nix; + network-transport-tcp = ./network-transport-tcp.nix; + network-transport-inmemory = ./network-transport-inmemory.nix; + acid-state = ./acid-state.nix; + socket-io = ./socket-io.nix; + engine-io = ./engine-io.nix; + engine-io-wai = ./engine-io-wai.nix; + canonical-json = ./canonical-json.nix; + clock = ./clock.nix; + rocksdb-haskell-ng = ./rocksdb-haskell-ng.nix; + log-warper = ./log-warper.nix; + hedgehog = ./hedgehog.nix; + universum = ./universum.nix; + serokell-util = ./serokell-util.nix; + inspector = ./inspector.nix; + }; + compiler.version = "8.4.4"; + compiler.nix-name = "ghc844"; + }; + resolver = "lts-12.26"; + compiler = "ghc-8.4.4"; + } \ No newline at end of file diff --git a/nix/.stack.nix/engine-io-wai.nix b/nix/.stack.nix/engine-io-wai.nix index 6e746cff368..dc1576af3f9 100644 --- a/nix/.stack.nix/engine-io-wai.nix +++ b/nix/.stack.nix/engine-io-wai.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "engine-io-wai"; - version = "1.0.9"; - }; + identifier = { name = "engine-io-wai"; version = "1.0.9"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "brandon@codedmart.com"; @@ -22,10 +13,10 @@ synopsis = "An @engine-io@ @ServerAPI@ that is compatible with @Wai@"; description = "This package provides an @engine-io@ @ServerAPI@ that is compatible with\n."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.engine-io) (hsPkgs.http-types) @@ -40,14 +31,14 @@ (hsPkgs.transformers) (hsPkgs.transformers-compat) (hsPkgs.attoparsec) - ]; + ]; + }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/engine.io.git"; rev = "8f9216b8f9c7bd96cb1feeb82db5271744d67fcd"; sha256 = "1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m"; - }; + }); postUnpack = "sourceRoot+=/engine-io-wai; echo source root reset to \$sourceRoot"; - } \ No newline at end of file + } \ No newline at end of file diff --git a/nix/.stack.nix/engine-io.nix b/nix/.stack.nix/engine-io.nix index 16f7faccb8d..7460ad235e7 100644 --- a/nix/.stack.nix/engine-io.nix +++ b/nix/.stack.nix/engine-io.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "engine-io"; - version = "1.2.21"; - }; + identifier = { name = "engine-io"; version = "1.2.21"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "ollie@ocharles.org.uk"; @@ -22,10 +13,10 @@ synopsis = "A Haskell implementation of Engine.IO"; description = "This library provides a Haskell implementation of\n, a library for real-time\nclient-server communication on the web. Engine.IO works with old browsers via\nXHR long-polling, and seamlessy upgrades to web sockets. This implementation\nsupports the majority of the Engine.IO protocol, including text and binary\npackets and the upgrading protocol."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.aeson) (hsPkgs.async) (hsPkgs.attoparsec) @@ -43,14 +34,14 @@ (hsPkgs.unordered-containers) (hsPkgs.vector) (hsPkgs.websockets) - ]; + ]; + }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/engine.io.git"; rev = "8f9216b8f9c7bd96cb1feeb82db5271744d67fcd"; sha256 = "1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m"; - }; + }); postUnpack = "sourceRoot+=/engine-io; echo source root reset to \$sourceRoot"; - } \ No newline at end of file + } \ No newline at end of file diff --git a/nix/.stack.nix/hedgehog.nix b/nix/.stack.nix/hedgehog.nix index 41a9b9414a6..3bd5f86fd53 100644 --- a/nix/.stack.nix/hedgehog.nix +++ b/nix/.stack.nix/hedgehog.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.8"; - identifier = { - name = "hedgehog"; - version = "1.0"; - }; + identifier = { name = "hedgehog"; version = "1.0"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "Jacob Stanley "; @@ -22,7 +13,7 @@ synopsis = "Release with confidence."; description = " automatically generates a comprehensive array\nof test cases, exercising your software in ways human testers would never\nimagine.\n\nGenerate hundreds of test cases automatically, exposing even the\nmost insidious of corner cases. Failures are automatically simplified, giving\ndevelopers coherent, intelligible error messages.\n\nTo get started quickly, see the ."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -51,8 +42,8 @@ (hsPkgs.transformers) (hsPkgs.transformers-base) (hsPkgs.wl-pprint-annotated) - ]; - }; + ]; + }; tests = { "test" = { depends = [ @@ -65,15 +56,15 @@ (hsPkgs.semigroups) (hsPkgs.text) (hsPkgs.transformers) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/hedgehogqa/haskell-hedgehog.git"; rev = "a20005f4d584f19ea05524320f1c9a90a44c81db"; sha256 = "1lca47ilzg75ibv2qbb1pl466rba6ir8ra0cg4qlji63dsbpkiks"; - }; + }); postUnpack = "sourceRoot+=/hedgehog; echo source root reset to \$sourceRoot"; - } \ No newline at end of file + } \ No newline at end of file diff --git a/nix/.stack.nix/inspector.nix b/nix/.stack.nix/inspector.nix index ffb7c856984..4c756251ef1 100644 --- a/nix/.stack.nix/inspector.nix +++ b/nix/.stack.nix/inspector.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: ({ flags = {}; package = { specVersion = "0"; - identifier = { - name = "inspector"; - version = "0.2"; - }; + identifier = { name = "inspector"; version = "0.2"; }; license = "BSD-3-Clause"; copyright = "2017-2018 PrimeType Ltd"; maintainer = "nicolas@primetype.co.uk"; @@ -22,7 +13,7 @@ synopsis = ""; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -31,8 +22,8 @@ (hsPkgs.cryptonite) (hsPkgs.foundation) (hsPkgs.memory) - ]; - }; + ]; + }; exes = { "example" = { depends = [ @@ -42,16 +33,14 @@ (hsPkgs.foundation) (hsPkgs.inspector) (hsPkgs.memory) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/primetype/inspector.git"; rev = "c975f4329365f0379c04358138e616fb96fb0b79"; sha256 = "12q1v7a8kcw7qi4lws4j3mvxwfkhni6zmp870kmnkgbgwvrax9gs"; - }; - }) // { - cabal-generator = "hpack"; - } \ No newline at end of file + }); + }) // { cabal-generator = "hpack"; } \ No newline at end of file diff --git a/nix/.stack.nix/ip.nix b/nix/.stack.nix/ip.nix index e1c4f5f1d55..3a5e203fd39 100644 --- a/nix/.stack.nix/ip.nix +++ b/nix/.stack.nix/ip.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "ip"; - version = "1.3.0"; - }; + identifier = { name = "ip"; version = "1.3.0"; }; license = "BSD-3-Clause"; copyright = "2016 Andrew Martin"; maintainer = "andrew.thaddeus@gmail.com"; @@ -22,10 +13,10 @@ synopsis = "Library for IP and MAC addresses"; description = "The `ip` package provides types and functions for dealing with\nIPv4 addresses, CIDR blocks, and MAC addresses. We provide instances\nfor typeclasses found in commonly used packages like `aeson`, `vector`,\nand `hashable`. We also provide `Parser`s for working with attoparsec.\n\nNotably, this package does not overload functions by introducing any\ntypeclasses of its own. Neither does it prefix functions with the name\nof the type that they work on. Instead, functions of the same name are\nexported by several different modules, and it is expected that end users\ndisambiguate by importing these modules qualified.\n\nThe only module intended to be imported unqualified is `Net.Types`. The\ntypes in this package should not conflict with the types in\nany other commonly used packages.\n\nThe following packages are intended to be used with this package:\n\n* `yesod-ip`: Provides orphan instances needed to work with yesod and\npersistent. Also, provides a `yesod-form` helper."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.attoparsec) (hsPkgs.aeson) @@ -34,11 +25,11 @@ (hsPkgs.bytestring) (hsPkgs.vector) (hsPkgs.primitive) - ]; - }; + ]; + }; tests = { "test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.ip) (hsPkgs.test-framework) @@ -50,42 +41,37 @@ (hsPkgs.HUnit) (hsPkgs.test-framework-hunit) (hsPkgs.attoparsec) - ]; - }; + ]; + }; "spec" = { - depends = [ - (hsPkgs.base) - (hsPkgs.ip) - (hsPkgs.hspec) - (hsPkgs.hspec) - ]; - }; + depends = [ (hsPkgs.base) (hsPkgs.ip) (hsPkgs.hspec) (hsPkgs.hspec) ]; + }; "doctest" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.ip) (hsPkgs.doctest) (hsPkgs.QuickCheck) - ]; + ]; + }; }; - }; benchmarks = { "criterion" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.ip) (hsPkgs.criterion) (hsPkgs.text) (hsPkgs.bytestring) (hsPkgs.attoparsec) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/andrewthad/haskell-ip"; rev = "9bb453139aa82cc973125091800422a523e1eb8f"; sha256 = "199mfpbgca7rvwvwk2zsmcpibc0sk0ni7c5zlf4gk3cps8s85gyr"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/kademlia.nix b/nix/.stack.nix/kademlia.nix index 2f960fc8c54..c9835ad5f25 100644 --- a/nix/.stack.nix/kademlia.nix +++ b/nix/.stack.nix/kademlia.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "kademlia"; - version = "1.1.0.1"; - }; + identifier = { name = "kademlia"; version = "1.1.0.1"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "fro_ozen , 2016 Serokell "; @@ -22,10 +13,10 @@ synopsis = "An implementation of the Kademlia DHT Protocol"; description = "\nA haskell implementation of the Kademlia distributed hashtable, an efficient\nway to store and lookup values distributed over a P2P network.\n\nThe implementation is based on the paper\n/Kademlia: A Peer-to-peer Information System Based on the XOR Metric/:\n\nby Petar Maymounkov and David Mazières.\n\nThis library aims to be very simple and pleasant to use, with the downside of\ndeciding some of the implementation details, like timeout intervals and\nk-bucket size, for the user."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.bytestring) (hsPkgs.containers) @@ -41,11 +32,11 @@ (hsPkgs.transformers) (hsPkgs.cryptonite) (hsPkgs.contravariant) - ]; - }; + ]; + }; exes = { "discovery-test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.binary) (hsPkgs.bytestring) @@ -60,12 +51,12 @@ (hsPkgs.random-shuffle) (hsPkgs.transformers) (hsPkgs.transformers-compat) - ]; + ]; + }; }; - }; tests = { "library-test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.binary) (hsPkgs.bytestring) @@ -89,14 +80,14 @@ (hsPkgs.time) (hsPkgs.transformers) (hsPkgs.transformers-compat) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/serokell/kademlia.git"; rev = "7120bb4d28e708acd52dfd61d3dca7914fac7d7f"; sha256 = "1k1wp9dwhzzqfivxc28vhxfqplnyh916crr7bhsiv829d6qifhw1"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/log-warper.nix b/nix/.stack.nix/log-warper.nix index e21cf9992ab..b1f912a5c3f 100644 --- a/nix/.stack.nix/log-warper.nix +++ b/nix/.stack.nix/log-warper.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "2.0"; - identifier = { - name = "log-warper"; - version = "1.8.10.1"; - }; + identifier = { name = "log-warper"; version = "1.8.10.1"; }; license = "MIT"; copyright = "2016-2018 Serokell"; maintainer = "Serokell "; @@ -22,10 +13,10 @@ synopsis = "Flexible, configurable, monadic and pretty logging"; description = "This package implements nice and featureful wrapper around hslogger library."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.aeson) (hsPkgs.ansi-terminal) @@ -49,11 +40,11 @@ (hsPkgs.unordered-containers) (hsPkgs.vector) (hsPkgs.yaml) - ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix); - }; + ] ++ (pkgs.lib).optional (!system.isWindows) (hsPkgs.unix); + }; tests = { "log-test" = { - depends = [ + depends = [ (hsPkgs.async) (hsPkgs.base) (hsPkgs.data-default) @@ -66,17 +57,17 @@ (hsPkgs.QuickCheck) (hsPkgs.universum) (hsPkgs.unordered-containers) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/log-warper.git"; rev = "0b7d4d48310f139d75829d31883aaa87ce53312c"; sha256 = "0m9inw7m42yj0kn3x3ip5ipv72pr34l4744myzlidbpqa2wf4b7g"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/network-transport-inmemory.nix b/nix/.stack.nix/network-transport-inmemory.nix index 412b568b922..25fa6d08879 100644 --- a/nix/.stack.nix/network-transport-inmemory.nix +++ b/nix/.stack.nix/network-transport-inmemory.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.8"; - identifier = { - name = "network-transport-inmemory"; - version = "0.5.1"; - }; + identifier = { name = "network-transport-inmemory"; version = "0.5.1"; }; license = "BSD-3-Clause"; copyright = "Well-Typed LLP, Tweag I/O Limited"; maintainer = "Facundo Domínguez "; @@ -22,41 +13,41 @@ synopsis = "In-memory instantiation of Network.Transport"; description = "This is a transport implementation that could be used for local\ncommunication in the same address space (i.e. one process).\n\nIt could be used either for testing purposes or for local\ncommunication that require the network-transport semantics.\n\nNB: network-tranpsport-inmemory does not support cross-transport\ncommunication. All endpoints that want to comminicate should be\ncreated using the same transport."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.network-transport) (hsPkgs.data-accessor) (hsPkgs.bytestring) (hsPkgs.containers) (hsPkgs.stm) - ]; - }; + ]; + }; tests = { "TestMulticastInMemory" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.network-transport-inmemory) (hsPkgs.network-transport) (hsPkgs.network-transport-tests) - ]; - }; + ]; + }; "TestInMemory" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.network-transport-inmemory) (hsPkgs.network-transport-tests) (hsPkgs.network-transport) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/avieth/network-transport-inmemory"; rev = "5d8ff2b07b9df35cf61329a3d975e2c8cf95c12a"; sha256 = "0ak64rks3lk3kk5wyndrrk2swmd84h9diribzix305xwz1jhjj9w"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/network-transport-tcp.nix b/nix/.stack.nix/network-transport-tcp.nix index e2812081afa..a4f5a3f208c 100644 --- a/nix/.stack.nix/network-transport-tcp.nix +++ b/nix/.stack.nix/network-transport-tcp.nix @@ -1,20 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { - flags = { - use-mock-network = false; - }; + flags = { use-mock-network = false; }; package = { specVersion = "1.10"; - identifier = { - name = "network-transport-tcp"; - version = "0.6.0"; - }; + identifier = { name = "network-transport-tcp"; version = "0.6.0"; }; license = "BSD-3-Clause"; copyright = "Well-Typed LLP, Tweag I/O Limited"; maintainer = "Facundo Domínguez "; @@ -24,7 +13,7 @@ synopsis = "TCP instantiation of Network.Transport"; description = "TCP instantiation of Network.Transport"; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -35,8 +24,8 @@ (hsPkgs.bytestring) (hsPkgs.network) (hsPkgs.uuid) - ]; - }; + ]; + }; tests = { "TestTCP" = { depends = [ @@ -46,10 +35,10 @@ (hsPkgs.network) (hsPkgs.network-transport) (hsPkgs.network-transport-tcp) - ]; - }; + ]; + }; "TestQC" = { - depends = pkgs.lib.optionals (flags.use-mock-network) [ + depends = (pkgs.lib).optionals (flags.use-mock-network) [ (hsPkgs.base) (hsPkgs.test-framework) (hsPkgs.test-framework-quickcheck2) @@ -66,14 +55,14 @@ (hsPkgs.mtl) (hsPkgs.transformers) (hsPkgs.lockfree-queue) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/avieth/network-transport-tcp"; rev = "2634e5e32178bb0456d800d133f8664321daa2ef"; sha256 = "03shp9prflhgqzw7pymw1pq2q7s1wf46pyjm2csx8646snrhf35i"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/network-transport.nix b/nix/.stack.nix/network-transport.nix index 7fbdd3f37a6..d1a5bc1054d 100644 --- a/nix/.stack.nix/network-transport.nix +++ b/nix/.stack.nix/network-transport.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.6"; - identifier = { - name = "network-transport"; - version = "0.5.2"; - }; + identifier = { name = "network-transport"; version = "0.5.2"; }; license = "BSD-3-Clause"; copyright = "Well-Typed LLP"; maintainer = "Facundo Domínguez "; @@ -22,24 +13,24 @@ synopsis = "Network abstraction layer"; description = "\"Network.Transport\" is a Network Abstraction Layer which provides\nthe following high-level concepts:\n\n* Nodes in the network are represented by 'EndPoint's. These are\nheavyweight stateful objects.\n\n* Each 'EndPoint' has an 'EndPointAddress'.\n\n* Connections can be established from one 'EndPoint' to another\nusing the 'EndPointAddress' of the remote end.\n\n* The 'EndPointAddress' can be serialised and sent over the\nnetwork, where as 'EndPoint's and connections cannot.\n\n* Connections between 'EndPoint's are unidirectional and lightweight.\n\n* Outgoing messages are sent via a 'Connection' object that\nrepresents the sending end of the connection.\n\n* Incoming messages for /all/ of the incoming connections on\nan 'EndPoint' are collected via a shared receive queue.\n\n* In addition to incoming messages, 'EndPoint's are notified of\nother 'Event's such as new connections or broken connections.\n\nThis design was heavily influenced by the design of the Common\nCommunication Interface\n().\nImportant design goals are:\n\n* Connections should be lightweight: it should be no problem to\ncreate thousands of connections between endpoints.\n\n* Error handling is explicit: every function declares as part of\nits type which errors it can return (no exceptions are thrown)\n\n* Error handling is \"abstract\": errors that originate from\nimplementation specific problems (such as \"no more sockets\" in\nthe TCP implementation) get mapped to generic errors\n(\"insufficient resources\") at the Transport level.\n\nThis package provides the generic interface only; you will\nprobably also want to install at least one transport\nimplementation (network-transport-*)."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.binary) (hsPkgs.bytestring) (hsPkgs.hashable) (hsPkgs.transformers) (hsPkgs.deepseq) - ] ++ pkgs.lib.optional (compiler.isGhc && compiler.version.lt "7.6") (hsPkgs.ghc-prim); - libs = pkgs.lib.optional (system.isWindows) (pkgs."ws2_32"); + ] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).lt "7.6") (hsPkgs.ghc-prim); + libs = (pkgs.lib).optional (system.isWindows) (pkgs."ws2_32"); + }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/serokell/network-transport"; rev = "018a50b9042c2115c3ec9c9fd5ca5f28737dd29c"; sha256 = "0lqa26l2ikpq6a4s7qm9b2favx59w82i0wngakhfyax66fpixp8q"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/plutus-prototype.nix b/nix/.stack.nix/plutus-prototype.nix deleted file mode 100644 index e1da992f563..00000000000 --- a/nix/.stack.nix/plutus-prototype.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.10"; - identifier = { - name = "plutus-prototype"; - version = "0.1.0.0"; - }; - license = "MIT"; - copyright = ""; - maintainer = "darryl.mcadams@iohk.io"; - author = "Darryl McAdams"; - homepage = "iohk.io"; - url = ""; - synopsis = "Prototype of the Plutus language"; - description = "Prototype of the Plutus language"; - buildType = "Simple"; - }; - components = { - "library" = { - depends = [ - (hsPkgs.base) - (hsPkgs.bifunctors) - (hsPkgs.binary) - (hsPkgs.bytestring) - (hsPkgs.cardano-crypto) - (hsPkgs.cryptonite) - (hsPkgs.ed25519) - (hsPkgs.either) - (hsPkgs.filepath) - (hsPkgs.lens) - (hsPkgs.memory) - (hsPkgs.mtl) - (hsPkgs.operational) - (hsPkgs.parsec) - (hsPkgs.transformers) - ]; - }; - }; - } // { - src = pkgs.fetchgit { - url = "https://github.com/avieth/plutus-prototype"; - rev = "d094be301195fcd8ab864d793f114970426a4478"; - sha256 = "1s932rghn4zn441waansp408b5bwk20rc1wsa5693a2nwnp4dijw"; - }; - } \ No newline at end of file diff --git a/nix/.stack.nix/rocksdb-haskell-ng.nix b/nix/.stack.nix/rocksdb-haskell-ng.nix index 82adffc268a..03e7492d2c9 100644 --- a/nix/.stack.nix/rocksdb-haskell-ng.nix +++ b/nix/.stack.nix/rocksdb-haskell-ng.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "rocksdb-haskell-ng"; - version = "0.0.0"; - }; + identifier = { name = "rocksdb-haskell-ng"; version = "0.0.0"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = ""; @@ -22,19 +13,15 @@ synopsis = ""; description = ""; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.directory) - ]; + depends = [ (hsPkgs.base) (hsPkgs.bytestring) (hsPkgs.directory) ]; libs = [ (pkgs."rocksdb") ]; - }; + }; tests = { "test" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.rocksdb-haskell-ng) (hsPkgs.hspec) @@ -43,12 +30,12 @@ (hsPkgs.directory) (hsPkgs.filepath) (hsPkgs.deepseq) - ]; + ]; + }; }; - }; benchmarks = { "speed" = { - depends = [ + depends = [ (hsPkgs.base) (hsPkgs.rocksdb-haskell-ng) (hsPkgs.criterion) @@ -58,14 +45,14 @@ (hsPkgs.directory) (hsPkgs.filepath) (hsPkgs.deepseq) - ]; + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/rocksdb-haskell-ng.git"; rev = "49f501a082d745f3b880677220a29cafaa181452"; sha256 = "02jvri8ik8jgrxwa6qmh3xcwqvm4s27iv3sxpjpny79nlhlxvfzp"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/serokell-util.nix b/nix/.stack.nix/serokell-util.nix index 749f2e6798c..c06e75a2598 100644 --- a/nix/.stack.nix/serokell-util.nix +++ b/nix/.stack.nix/serokell-util.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "2.0"; - identifier = { - name = "serokell-util"; - version = "0.9.0"; - }; + identifier = { name = "serokell-util"; version = "0.9.0"; }; license = "MIT"; copyright = "2016-2018 Serokell"; maintainer = "Serokell "; @@ -22,7 +13,7 @@ synopsis = "General-purpose functions by Serokell"; description = "Serokell-util is a library consisting of functions, which\nare not included in standard libraries, but are useful for\nmultiple projects. This library was created when it was\nfound that in new projects we need to use some utility\nfunctions from existing projects and don't want to\ncopy-paste them."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -54,8 +45,8 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; - }; + ]; + }; tests = { "serokell-test" = { depends = [ @@ -70,17 +61,17 @@ (hsPkgs.universum) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; build-tools = [ - (hsPkgs.buildPackages.hspec-discover) - ]; + (hsPkgs.buildPackages.hspec-discover or (pkgs.buildPackages.hspec-discover)) + ]; + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/serokell-util"; rev = "e592ae9b9387184519b393c066edbf8b4ed91737"; sha256 = "11nhmikaqmhfs4cyhs3rq07bi4hmqyfg9vl7q8779h07i629zsz3"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/socket-io.nix b/nix/.stack.nix/socket-io.nix index 8d2655b85fa..8715b8576d0 100644 --- a/nix/.stack.nix/socket-io.nix +++ b/nix/.stack.nix/socket-io.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.10"; - identifier = { - name = "socket-io"; - version = "1.3.10"; - }; + identifier = { name = "socket-io"; version = "1.3.10"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "ollie@ocharles.org.uk"; @@ -22,10 +13,10 @@ synopsis = ""; description = "This library provides an implementation of \nprotocol (version 1). It builds on top of Engine.IO, allowing Socket.io to\nwork with both long polling XHR requests, and seamlessly upgrading them to\nHTML 5 web sockets."; buildType = "Simple"; - }; + }; components = { "library" = { - depends = [ + depends = [ (hsPkgs.aeson) (hsPkgs.attoparsec) (hsPkgs.base) @@ -37,14 +28,14 @@ (hsPkgs.transformers) (hsPkgs.unordered-containers) (hsPkgs.vector) - ]; + ]; + }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/engine.io.git"; rev = "8f9216b8f9c7bd96cb1feeb82db5271744d67fcd"; sha256 = "1kamjl01k8njlw6jcwr6nzcd2218wvpk30n5v1f8233hw6qw5x3m"; - }; + }); postUnpack = "sourceRoot+=/socket-io; echo source root reset to \$sourceRoot"; - } \ No newline at end of file + } \ No newline at end of file diff --git a/nix/.stack.nix/stylish-haskell.nix b/nix/.stack.nix/stylish-haskell.nix deleted file mode 100644 index 1c4d143b363..00000000000 --- a/nix/.stack.nix/stylish-haskell.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.8"; - identifier = { - name = "stylish-haskell"; - version = "0.9.2.2"; - }; - license = "BSD-3-Clause"; - copyright = "2012 Jasper Van der Jeugt"; - maintainer = "Jasper Van der Jeugt "; - author = "Jasper Van der Jeugt "; - homepage = "https://github.com/jaspervdj/stylish-haskell"; - url = ""; - synopsis = "Haskell code prettifier"; - description = "A Haskell code prettifier. For more information, see:\n\n"; - buildType = "Simple"; - }; - components = { - "library" = { - depends = [ - (hsPkgs.aeson) - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.directory) - (hsPkgs.filepath) - (hsPkgs.file-embed) - (hsPkgs.haskell-src-exts) - (hsPkgs.mtl) - (hsPkgs.semigroups) - (hsPkgs.syb) - (hsPkgs.yaml) - ]; - }; - exes = { - "stylish-haskell" = { - depends = [ - (hsPkgs.stylish-haskell) - (hsPkgs.strict) - (hsPkgs.optparse-applicative) - (hsPkgs.aeson) - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.directory) - (hsPkgs.filepath) - (hsPkgs.file-embed) - (hsPkgs.haskell-src-exts) - (hsPkgs.mtl) - (hsPkgs.syb) - (hsPkgs.yaml) - ]; - }; - }; - tests = { - "stylish-haskell-tests" = { - depends = [ - (hsPkgs.HUnit) - (hsPkgs.test-framework) - (hsPkgs.test-framework-hunit) - (hsPkgs.aeson) - (hsPkgs.base) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.directory) - (hsPkgs.filepath) - (hsPkgs.file-embed) - (hsPkgs.haskell-src-exts) - (hsPkgs.mtl) - (hsPkgs.syb) - (hsPkgs.yaml) - ]; - }; - }; - }; - } // { - src = pkgs.fetchgit { - url = "https://github.com/jaspervdj/stylish-haskell"; - rev = "f253f37362be840bafe2c82a8d7fb284046fda48"; - sha256 = "070lwddjvawaf42p8mvxl6fam44nhn98nc85gsk5688fygccv5qw"; - }; - } \ No newline at end of file diff --git a/nix/.stack.nix/time-units.nix b/nix/.stack.nix/time-units.nix index c496673d1d4..eed38ab80f1 100644 --- a/nix/.stack.nix/time-units.nix +++ b/nix/.stack.nix/time-units.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.6"; - identifier = { - name = "time-units"; - version = "1.0.0"; - }; + identifier = { name = "time-units"; version = "1.0.0"; }; license = "BSD-3-Clause"; copyright = ""; maintainer = "Adam Wick "; @@ -22,16 +13,12 @@ synopsis = "A basic library for defining units of time as types."; description = "In many cases, it is useful (either for error checking or documentation\nreasons) to define input and output types as having a particular unit of\ntime. In addition, by creating a type class defining type units, this\nlibrary should make it easier to separate the units of time the developer\nwants to think in versus the units of time the library author wants to\nthink in."; buildType = "Simple"; - }; - components = { - "library" = { - depends = [ (hsPkgs.base) ]; }; - }; - } // { - src = pkgs.fetchgit { + components = { "library" = { depends = [ (hsPkgs.base) ]; }; }; + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/serokell/time-units.git"; rev = "6c3747c1ac794f952de996dd7ba8a2f6d63bf132"; sha256 = "0psdr1if0rgnn24698x3583m0603rwd3sd7yb9whj03hskmkwpgs"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/.stack.nix/universum.nix b/nix/.stack.nix/universum.nix index 38ae3830f30..f65bf291007 100644 --- a/nix/.stack.nix/universum.nix +++ b/nix/.stack.nix/universum.nix @@ -1,18 +1,9 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: { flags = {}; package = { specVersion = "1.18"; - identifier = { - name = "universum"; - version = "1.2.0"; - }; + identifier = { name = "universum"; version = "1.2.0"; }; license = "MIT"; copyright = "2016 Stephen Diehl, 2016-2018 Serokell"; maintainer = "Serokell "; @@ -22,7 +13,7 @@ synopsis = "Custom prelude used in Serokell"; description = "See README.md file for more details."; buildType = "Simple"; - }; + }; components = { "library" = { depends = [ @@ -45,8 +36,8 @@ (hsPkgs.vector) (hsPkgs.formatting) (hsPkgs.fmt) - ]; - }; + ]; + }; tests = { "universum-test" = { depends = [ @@ -58,16 +49,12 @@ (hsPkgs.hedgehog) (hsPkgs.tasty) (hsPkgs.tasty-hedgehog) - ]; - }; + ]; + }; "universum-doctest" = { - depends = [ - (hsPkgs.base) - (hsPkgs.doctest) - (hsPkgs.Glob) - ]; + depends = [ (hsPkgs.base) (hsPkgs.doctest) (hsPkgs.Glob) ]; + }; }; - }; benchmarks = { "universum-benchmark" = { depends = [ @@ -76,14 +63,14 @@ (hsPkgs.containers) (hsPkgs.gauge) (hsPkgs.unordered-containers) - ] ++ pkgs.lib.optional (compiler.isGhc && compiler.version.eq "7.10.3") (hsPkgs.semigroups); + ] ++ (pkgs.lib).optional (compiler.isGhc && (compiler.version).eq "7.10.3") (hsPkgs.semigroups); + }; }; }; - }; - } // { - src = pkgs.fetchgit { + } // { + src = (pkgs.lib).mkDefault (pkgs.fetchgit { url = "https://github.com/input-output-hk/universum"; rev = "15f7db758ff5a24b874de2247f6f7a4576562da5"; sha256 = "127bs29zpjcc40777dv7figk05gd00b9ja57sp11w440qr5h72hk"; - }; - } \ No newline at end of file + }); + } \ No newline at end of file diff --git a/nix/iohk-common.nix b/nix/iohk-common.nix new file mode 100644 index 00000000000..75cba1cdc98 --- /dev/null +++ b/nix/iohk-common.nix @@ -0,0 +1,14 @@ +# Imports the iohk-nix library. +# The version can be overridden for debugging purposes by setting +# NIX_PATH=iohk_nix=/path/to/iohk-nix +import ( + let try = builtins.tryEval ; + in if try.success + then builtins.trace "using host " try.value + else + let + spec = builtins.fromJSON (builtins.readFile ./iohk-nix-src.json); + in builtins.fetchTarball { + url = "${spec.url}/archive/${spec.rev}.tar.gz"; + inherit (spec) sha256; + }) {} diff --git a/nix/iohk-nix-src.json b/nix/iohk-nix-src.json new file mode 100644 index 00000000000..db0149b894d --- /dev/null +++ b/nix/iohk-nix-src.json @@ -0,0 +1,7 @@ +{ + "url": "https://github.com/input-output-hk/iohk-nix", + "rev": "f7a952242798a0eeb5f00693979b8adfeff941bc", + "date": "2019-06-19T07:11:58+00:00", + "sha256": "0fyg9grb4b723i6qahb5r6j61i706k1axkmw4dga4q94h8sqlwxc", + "fetchSubmodules": false +} diff --git a/nix/nix-tools.nix b/nix/nix-tools.nix new file mode 100644 index 00000000000..eb72f4fa903 --- /dev/null +++ b/nix/nix-tools.nix @@ -0,0 +1,6 @@ +{ ... }@args: + +let + commonLib = import ./iohk-common.nix; + +in commonLib.nix-tools.default-nix ./pkgs.nix args diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 5714c887de2..2924fc85a88 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -1,51 +1,13 @@ -{ args ? { config = import ./config.nix; } -, nixpkgs ? import +{ pkgs ? import {} +, iohk-extras ? {} +, iohk-module ? {} +, haskell +, ... }: let - pkgs = nixpkgs args; - overrideWith = override: default: - let - try = builtins.tryEval (builtins.findFile builtins.nixPath override); - in if try.success then - builtins.trace "using search host <${override}>" try.value - else - default; - -in -let - # save the nixpkgs value in pkgs' - # so we can work with `pkgs` provided by modules. - pkgs' = pkgs; - # - nixpkgs' = import (import ./fetch-nixpkgs.nix) {}; - # all packages from hackage as nix expressions - hackage = import (overrideWith "hackage" - (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; - repo = "hackage.nix"; - rev = "77ccf6764809a70947d2d3c34be7f886ebef4222"; - sha256 = "10csn7v77ry769xri6rmh9kxn0z0ynqybqa2g0dvg58mmcp1g6jx"; - name = "hackage-exprs-source"; })) - ; - # a different haskell infrastructure - haskell = import (overrideWith "haskell" - (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; - repo = "haskell.nix"; - rev = "9d251db79ad7736c1d3d38e5005f07e5e44e86d4"; - sha256 = "0aalg19bksnqq5a5xaz90pghjsagfysbcpgwbwz5hfqrrl7mplgg"; - name = "haskell-lib-source"; })) - hackage; - - # the set of all stackage snapshots - stackage = import (overrideWith "stackage" - (nixpkgs'.fetchFromGitHub { owner = "input-output-hk"; - repo = "stackage.nix"; - rev = "c34653026c97ce01a237212d5ed7a9c8fc607810"; - sha256 = "0cawknjg7qg467d6cmf8zx957cfwk35sfwblsn8sl64z5c2jfcs8"; - name = "stackage-snapshot-source"; })) - ; # our packages - stack-pkgs = import ./.stack-pkgs.nix; + stack-pkgs = import ./.stack.nix; # Build the packageset with module support. # We can essentially override anything in the modules @@ -54,147 +16,24 @@ let # packages.cbors.patches = [ ./one.patch ]; # packages.cbors.flags.optimize-gmp = false; # - pkgSet = haskell.mkNewPkgSet { - inherit pkgs; - pkg-def = stackage.${stack-pkgs.resolver}; - pkg-def-overlays = [ - stack-pkgs.overlay - # We use some customized libiserv/remote-iserv/iserv-proxy - # instead of the ones provided by ghc. This is mostly due - # to being able to hack on them freely as needed. - # - # iserv is only relevant for template-haskell execution in - # a cross compiling setup. - { - ghci = ./ghci.nix; - ghc-boot = ./ghc-boot.nix; - libiserv = ./libiserv.nix; - remote-iserv = ./remote-iserv.nix; - iserv-proxy = ./iserv-proxy.nix; -# packages.hfsevents.revision = import ../hfsevents-0.1.6; - } - (hackage: { - hsc2hs = hackage.hsc2hs."0.68.4".revisions.default; - # stackage 12.26 beautifully omitts the Win32 pkg - Win32 = hackage.Win32."2.6.2.0".revisions.default; - }) + compiler = (stack-pkgs.extras haskell.hackage).compiler; + pkgSet = haskell.mkStackPkgSet { + inherit stack-pkgs; + pkg-def-extras = [ + iohk-extras.${compiler.nix-name} ]; modules = [ + # the iohk-module will supply us with the necessary + # cross compilation plumbing to make Template Haskell + # work when cross compiling. + iohk-module { - # This needs true, otherwise we miss most of the interesting - # modules. - packages.ghci.flags.ghci = true; - # this needs to be true to expose module - # Message.Remote - # as needed by libiserv. - packages.libiserv.flags.network = true; - - # enable golden tests on cardano-crypto - packages.cardano-crypto.flags.golden-tests = true; - } - ({ config, ... }: { - packages.hsc2hs.components.exes.hsc2hs.doExactConfig= true; - packages.Win32.components.library.build-tools = [ config.hsPkgs.buildPackages.hsc2hs ]; -# packages.Win32.components.library.doExactConfig = true; - packages.remote-iserv.postInstall = '' - cp ${pkgs.windows.mingw_w64_pthreads}/bin/libwinpthread-1.dll $out/bin/ - ''; - }) - { - packages.conduit.patches = [ ./patches/conduit-1.3.0.2.patch ]; - packages.cryptonite-openssl.patches = [ ./patches/cryptonite-openssl-0.7.patch ]; - packages.streaming-commons.patches = [ ./patches/streaming-commons-0.2.0.0.patch ]; - packages.x509-system.patches = [ ./patches/x509-system-1.6.6.patch ]; - packages.file-embed-lzma.patches = [ ./patches/file-embed-lzma-0.patch ]; - - packages.cardano-sl.patches = [ ./patches/cardano-sl.patch ]; - } - # cross compilation logic - ({ pkgs, buildModules, config, lib, ... }: - let - withTH = import ./mingw_w64.nix { - inherit (pkgs') stdenv lib writeScriptBin; - wine = pkgs.buildPackages.winePackages.minimal; - inherit (pkgs.windows) mingw_w64_pthreads; - inherit (pkgs) gmp; - # iserv-proxy needs to come from the buildPackages, as it needs to run on the - # build host. - inherit (config.hsPkgs.buildPackages.iserv-proxy.components.exes) iserv-proxy; - # remote-iserv however needs to come from the regular packages as it has to - # run on the target host. - inherit (packages.remote-iserv.components.exes) remote-iserv; - # we need to use openssl.bin here, because the .dll's are in the .bin expression. - extra-test-libs = [ pkgs.rocksdb pkgs.openssl.bin ]; - - } // { doCrossCheck = true; }; - in lib.optionalAttrs pkgs'.stdenv.hostPlatform.isWindows { - packages.generics-sop = withTH; - packages.ether = withTH; - packages.th-lift-instances = withTH; - packages.aeson = withTH; - packages.hedgehog = withTH; - packages.th-orphans = withTH; - packages.uri-bytestring = withTH; - packages.these = withTH; - packages.katip = withTH; - packages.swagger2 = withTH; - packages.wreq = withTH; - packages.wai-app-static = withTH; - packages.log-warper = withTH; - packages.cardano-sl-util = withTH; - packages.cardano-sl-crypto = withTH; - packages.cardano-sl-crypto-test = withTH; - packages.cardano-sl-core = withTH; - packages.cardano-sl = withTH; - packages.cardano-sl-chain = withTH; - packages.cardano-sl-db = withTH; - packages.cardano-sl-networking = withTH; - packages.cardano-sl-infra = withTH; - packages.cardano-sl-infra-test = withTH; - packages.cardano-sl-client = withTH; - packages.cardano-sl-core-test = withTH; - packages.cardano-sl-chain-test = withTH; - packages.cardano-sl-utxo = withTH; - packages.cardano-wallet = withTH; - packages.cardano-sl-tools = withTH; - packages.cardano-sl-generator = withTH; - packages.cardano-sl-auxx = withTH; - packages.cardano-sl-faucet = withTH; - packages.cardano-sl-binary = withTH; - packages.cardano-sl-node = withTH; - packages.cardano-sl-explorer = withTH; - packages.cardano-sl-cluster = withTH; - packages.cardano-sl-x509 = withTH; - packages.cardano-sl-mnemonic = withTH; - packages.cardano-crypto = withTH; - packages.math-functions = withTH; - packages.servant-swagger-ui = withTH; - packages.servant-swagger-ui-redoc = withTH; - packages.trifecta = withTH; - packages.Chart = withTH; - packages.active = withTH; - packages.diagrams = withTH; - packages.diagrams-lib = withTH; - packages.diagrams-svg = withTH; - packages.diagrams-postscript = withTH; - packages.Chart-diagrams = withTH; - packages.statistics = withTH; - }) - # packages we wish to ignore version bounds of. - # this is similar to jailbreakCabal, however it - # does not require any messing with cabal files. - { - packages.katip.components.library.doExactConfig = true; - packages.serokell-util.components.library.doExactConfig = true; - # trutle wants Win32 < 2.6 - packages.turtle.components.library.doExactConfig = true; + # Packages we wish to ignore version bounds of. + # This is similar to jailbreakCabal, however it + # does not require any messing with cabal files. } - ({ pkgs, ... }: { - packages.hfsevents.components.library.frameworks = [ pkgs.CoreServices ]; - }) ]; }; - packages = pkgSet.config.hsPkgs // { _config = pkgSet.config; }; - -in packages +in + pkgSet.config.hsPkgs // { _config = pkgSet.config; } diff --git a/nix/regenerate.sh b/nix/regenerate.sh new file mode 100755 index 00000000000..7d9a5236e69 --- /dev/null +++ b/nix/regenerate.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -euo pipefail + + +exec $(nix-build `dirname $0`/iohk-common.nix -A nix-tools.regeneratePackages --no-out-link --option substituters "https://hydra.iohk.io https://cache.nixos.org" --option trusted-substituters "" --option trusted-public-keys "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=") diff --git a/nix/update-iohk-nix.sh b/nix/update-iohk-nix.sh new file mode 100755 index 00000000000..0c9d1e08833 --- /dev/null +++ b/nix/update-iohk-nix.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p nix-prefetch-git + +set -euo pipefail + +NIX_DIR=`dirname $0` + +nix-prefetch-git https://github.com/input-output-hk/iohk-nix \ + > $NIX_DIR/iohk-nix-src.json diff --git a/release.nix b/release.nix index 5bf6a3c2e98..5bca6473401 100644 --- a/release.nix +++ b/release.nix @@ -1,254 +1,84 @@ let - fixedLib = import ./lib.nix; - fixedNixpkgs = fixedLib.fetchNixPkgs; + commonLib = import ./nix/iohk-common.nix; + default = import ./default.nix {}; + # Path of nix-tools jobs that we want to evict from release.nix: + disabled = [ + # FIXME: those tests freeze on darwin hydra agents: + ["nix-tools" "tests" "ouroboros-consensus" "test-storage" "x86_64-darwin"] + ]; in - { supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ] - , scrubJobs ? true - , cardano ? { outPath = ./.; rev = "abcdef"; } - , fasterBuild ? false - , skipDocker ? false - , skipPackages ? [] - , nixpkgsArgs ? { - config = (import ./nix/config.nix // { allowUnfree = false; inHydra = true; }); - gitrev = cardano.rev; - inherit fasterBuild; - } - }: +{ ouroboros-network ? { outPath = ./.; rev = "acdef"; }, ... }@args: +commonLib.pkgs.lib.mapAttrsRecursiveCond +(as: !(as ? "type" && as.type == "derivation")) +(path: v: if (builtins.elem path disabled) then null else v) +(commonLib.nix-tools.release-nix { + package-set-path = ./nix/nix-tools.nix; + _this = ouroboros-network; -with (import (fixedNixpkgs + "/pkgs/top-level/release-lib.nix") { - inherit supportedSystems scrubJobs nixpkgsArgs; - packageSet = import ./.; -}); + # packages from our stack.yaml or plan file (via nix/pkgs.nix) we + # are interested in building on CI via nix-tools. + packages = [ "typed-protocols" + "typed-protocols-cbor" + "network-mux" + "ouroboros-network" + "ouroboros-network-testing" + "ouroboros-consensus" + "io-sim" + "io-sim-classes" + "byron-proxy" + ]; -let - iohkPkgs = import ./. { gitrev = cardano.rev; }; - pkgs = import fixedNixpkgs { config = {}; }; - shellEnv = import ./shell.nix { }; - wrapDockerImage = cluster: let - images = { - mainnet = iohkPkgs.dockerImages.mainnet; - staging = iohkPkgs.dockerImages.staging; - }; - wrapImage = image: pkgs.runCommand "${image.name}-hydra" {} '' - mkdir -pv $out/nix-support/ - cat < $out/nix-support/hydra-build-products - file dockerimage ${image} - EOF - ''; - in { - wallet = wrapImage images."${cluster}".wallet; - explorer = wrapImage images."${cluster}".explorer; - }; - platforms = removeAttrs { - all-cardano-sl = supportedSystems; - cardano-report-server = [ "x86_64-linux" ]; - cardano-report-server-static = [ "x86_64-linux" ]; - cardano-sl = supportedSystems; - cardano-sl-auxx = supportedSystems; - cardano-sl-chain = supportedSystems; - cardano-sl-cluster = [ "x86_64-linux" ]; - cardano-sl-core = supportedSystems; - cardano-sl-crypto = supportedSystems; - cardano-sl-db = supportedSystems; - cardano-sl-explorer = [ "x86_64-linux" ]; - cardano-sl-explorer-frontend = [ "x86_64-linux" ]; - cardano-sl-explorer-static = [ "x86_64-linux" ]; - cardano-sl-generator = supportedSystems; - cardano-sl-infra = supportedSystems; - cardano-sl-networking = supportedSystems; - cardano-sl-node-static = supportedSystems; - cardano-sl-tools = supportedSystems; - cardano-sl-tools-post-mortem = supportedSystems; - cardano-sl-util = supportedSystems; - cardano-sl-x509 = supportedSystems; - cardano-wallet = supportedSystems; - daedalus-bridge = supportedSystems; - shells.cabal = supportedSystems; - shells.stack = supportedSystems; - stack2nix = supportedSystems; - - } skipPackages; - platforms' = removeAttrs { - connectScripts.mainnet.wallet = [ "x86_64-linux" "x86_64-darwin" ]; - connectScripts.mainnet.explorer = [ "x86_64-linux" "x86_64-darwin" ]; - connectScripts.staging.wallet = [ "x86_64-linux" "x86_64-darwin" ]; - connectScripts.staging.explorer = [ "x86_64-linux" "x86_64-darwin" ]; - connectScripts.testnet.wallet = [ "x86_64-linux" "x86_64-darwin" ]; - connectScripts.testnet.explorer = [ "x86_64-linux" "x86_64-darwin" ]; - } skipPackages; - mapped = mapTestOn platforms; - - nix-tools-toolchain = supportedSystems: { - nix-tools.libs = removeAttrs { - # nix-tools toolchain: Libraries - cardano-sl = supportedSystems; - cardano-sl-auxx = supportedSystems; - cardano-sl-chain = supportedSystems; - cardano-sl-core = supportedSystems; - cardano-sl-crypto = supportedSystems; - cardano-sl-db = supportedSystems; - cardano-sl-generator = supportedSystems; - cardano-sl-infra = supportedSystems; - cardano-sl-networking = supportedSystems; - cardano-sl-tools = supportedSystems; - cardano-sl-util = supportedSystems; - cardano-wallet = supportedSystems; - cardano-sl-x509 = supportedSystems; - turtle = supportedSystems; - } skipPackages; - nix-tools.exes = removeAttrs { - # nix-tools toolchain: Executables - # these will usually implicitly build their - # library as they depend on it. - cardano-sl-tools = supportedSystems; - cardano-sl-generator = supportedSystems; - cardano-sl-tools-post-mortem = supportedSystems; - cardano-wallet = supportedSystems; - } skipPackages; - # nix-tools toolchain: Tests - nix-tools.tests = - removeAttrs - (lib.mapAttrs (_: lib.mapAttrs (_: _: supportedSystems)) - (lib.filterAttrs (n: v: fixedLib.isCardanoSL n && v != null) - iohkPkgs.nix-tools.tests)) - skipPackages; - # nix-tools toolchain: Benchmarks - nix-tools.benchmarks = - removeAttrs - (lib.mapAttrs (_: lib.mapAttrs (_: _: supportedSystems)) - (lib.filterAttrs (n: v: fixedLib.isCardanoSL n && v != null) - iohkPkgs.nix-tools.benchmarks)) - skipPackages; - }; - - # tests that are either broken or broken on some arch - broken-tests = { - # these two tests are broken on darwin and take forever. - # thus we only test them on linux - cardano-sl-chain.chain-test = [ "x86_64-linux" ]; - cardano-wallet.unit = [ "x86_64-linux" ]; - }; - broken-tests-cross = { - # This one does not complete on wine. - cardano-sl-db.db-test = []; - cardano-sl-auxx.cardano-auxx-test = [ "x86_64-linux" ]; - cardano-sl-client.cardano-client-test = [ "x86_64-linux" ]; - cardano-sl-cluster.cardano-sl-cluster-test = [ "x86_64-linux" ]; - cardano-sl-explorer.cardano-explorer-test = [ "x86_64-linux" ]; - cardano-sl-faucet.faucet-test = [ "x86_64-linux" ]; - cardano-sl-generator.cardano-generator-test = [ "x86_64-linux" ]; - cardano-sl-mnemonic.cardano-sl-mnemonic-test = [ "x86_64-linux" ]; - cardano-sl-node.property-tests = [ "x86_64-linux" ]; - cardano-sl.cardano-test = [ "x86_64-linux" ]; - cardano-sl-x509.cardano-sl-x509-test = [ "x86_64-linux" ]; - cardano-sl-tools.cardano-sl-tools-test = [ "x86_64-linux" ]; - cardano-sl-networking.cardano-sl-networking-test = [ "x86_64-linux" ]; - cardano-sl-infra.infra-test = [ "x86_64-linux" ]; - cardano-sl-crypto.crypto-test = [ "x86_64-linux" ]; - cardano-crypto.cardano-crypto-test = [ "x86_64-linux" ]; - cardano-crypto.cardano-crypto-golden-tests = [ "x86_64-linux" ]; - cardano-sl-core.core-test = [ "x86_64-linux" ]; - cardano-sl-chain.chain-test = [ "x86_64-linux" ]; - cardano-sl-binary.binary-test = [ "x86_64-linux" ]; - cardano-sl-util.util-test = [ "x86_64-linux" ]; - cardano-wallet.nightly = [ "x86_64-linux" ]; - cardano-wallet.unit = [ "x86_64-linux" ]; - cardano-report-server.cardano-report-server-test = [ "x86_64-linux" ]; - }; - mapped-nix-tools = mapTestOn (lib.recursiveUpdate (nix-tools-toolchain supportedSystems) { nix-tools.tests = broken-tests; }); - # do linux->windows only, not mac->windows. - mapped-nix-tools-cross = mapTestOnCross lib.systems.examples.mingwW64 (lib.recursiveUpdate (nix-tools-toolchain [ "x86_64-linux" ]) { nix-tools.tests = broken-tests-cross; }); - - # prefix the targets with their triple. + # The set of jobs we consider crutial for each CI run. + # if a single one of these fails, the build will be marked + # as failed. # - # x86_64-pc-mingw32-$pkg + # The names can be looked up on hydra when in doubt. # - mapped-nix-tools' - = (lib.recursiveUpdate - (mapped-nix-tools) - (lib.mapAttrs (_: (lib.mapAttrs (_: (lib.mapAttrs' (n: v: lib.nameValuePair (lib.systems.examples.mingwW64.config + "-" + n) v))))) - mapped-nix-tools-cross)) - // { - daedalus-mingw32-pkg = pkgs.runCommand "daedalus-mingw32-pkg" {} '' - mkdir -p daedalus $out - - cd daedalus - cp ${mapped-nix-tools-cross.nix-tools.exes.cardano-wallet.x86_64-linux}/bin/cardano-node.exe . - cp ${mapped-nix-tools-cross.nix-tools.exes.cardano-sl-tools.x86_64-linux}/bin/cardano-launcher.exe . - cp ${mapped-nix-tools-cross.nix-tools.exes.cardano-sl-tools.x86_64-linux}/bin/wallet-extractor.exe . - cp ${mapped-nix-tools-cross.nix-tools.exes.cardano-sl-tools.x86_64-linux}/bin/cardano-x509-certificates.exe . - cp ${./log-configs/daedalus.yaml} log-config-prod.yaml - cp ${./lib/configuration.yaml} configuration.yaml - cp ${./lib}/*genesis*.json . - # this comes from cardano-sl.cabal, via an inherit in default.nix - echo ${cardano.rev} > commit-id - echo ${iohkPkgs.version} > version - ${pkgs.zip}/bin/zip -9 $out/CardanoSL.zip * - - # add CardanoSL.zip to the hydra-build-products to make - # hydra provide a link to it. - mkdir -p $out/nix-support - echo "file binary-dist \"$out/CardanoSL.zip\"" \ - > $out/nix-support/hydra-build-products - ''; - }; + # custom jobs will follow their name as set forth in + # other-packages. + # + # nix-tools packages are prefixed with `nix-tools` and + # follow the following naming convention: + # + # namespace optional cross compilation prefix build machine + # .-------. .-----------------. .--------------------------. + # nix-tools.{libs,exes,tests,benchmarks}.{x86_64-pc-mingw-,}$pkg.$component.{x86_64-linux,x86_64-darwin} + # '--------------------------' '-------------' + # component type cabal pkg and component* + # + # * note that for `libs`, $component is empty, as cabal only + # provides a single library for packages right now. + # * note that for `exes`, $component is also empty, because it + # it provides all exes under a single result directory. + # To specify a single executable component to build, use + # `cexes` as component type. + # + # Example: + # + # nix-tools.libs.ouroboros-consensus.x86_64-darwin -- will build the ouroboros-consensus library on and for macOS + # nix-tools.libs.x86_64-pc-mingw32-ouroboros-network.x86_64-linux -- will build the ouroboros-network library on linux for windows. + # nix-tools.tests.ouroboros-consensus.test-crypto.x86_64-linux -- will build and run the test-crypto from the + # ouroboros-consensus package on linux. - mapped' = mapTestOn platforms'; - makeConnectScripts = cluster: let - in { - inherit (mapped'.connectScripts."${cluster}") wallet explorer; + # The required jobs that must pass for ci not to fail: + required-name = "ouroboros-network-required-checks"; + extraBuilds = { + tests = default.tests; + network-pdf-wip = default.network-pdf-wip; + network-pdf = default.network-pdf; }; - nixosTests = import ./nixos-tests; - tests = iohkPkgs.tests; - makeRelease = cluster: { - name = cluster; - value = { - connectScripts = makeConnectScripts cluster; - } // fixedLib.optionalAttrs (! skipDocker) { - dockerImage = wrapDockerImage cluster; - }; - }; - # return an attribute set containing the result of running every test-suite in cardano, on the given system - makeCardanoTestRuns = system: - let - pred = name: value: fixedLib.isCardanoSL name && value ? testrun; - cardanoPkgs = import ./. { inherit system; }; - f = name: value: value.testrun; - in pkgs.lib.mapAttrs f (lib.filterAttrs pred cardanoPkgs); -in pkgs.lib.fix (jobsets: mapped // mapped-nix-tools' // { - inherit tests; - inherit (pkgs) cabal2nix; - nixpkgs = let - wrapped = pkgs.runCommand "nixpkgs" {} '' - ln -sv ${fixedNixpkgs} $out - ''; - in if 0 <= builtins.compareVersions builtins.nixVersion "1.12" then wrapped else fixedNixpkgs; - regen-script = import ./pkgs/regen.nix {}; - # the result of running every cardano test-suite on 64bit linux - all-cardano-tests.x86_64-linux = makeCardanoTestRuns "x86_64-linux"; - # hydra will create a special aggregate job, that relies on all of these sub-jobs passing - required = pkgs.lib.hydraJob (pkgs.releaseTools.aggregate { - name = "cardano-required-checks"; - constituents = - let - allLinux = x: map (system: x.${system}) [ "x86_64-linux" ]; - all = x: map (system: x.${system}) supportedSystems; - recursiveFlattenAttrs = set: builtins.concatLists (lib.mapAttrsFlatten (key: value: if (lib.isDerivation value) then [value] else (recursiveFlattenAttrs value)) set); - in - [ - (builtins.concatLists (map lib.attrValues (allLinux jobsets.all-cardano-tests))) - (all jobsets.all-cardano-sl) - (all jobsets.daedalus-bridge) - jobsets.mainnet.connectScripts.wallet.x86_64-linux - jobsets.tests.hlint - jobsets.tests.shellcheck - jobsets.tests.stylishHaskell - jobsets.tests.swaggerSchemaValidation - jobsets.cardano-sl-explorer-frontend.x86_64-linux - (recursiveFlattenAttrs jobsets.nix-tools.benchmarks) - (builtins.concatLists (lib.attrValues (lib.mapAttrs (_: allLinux) jobsets.nix-tools.libs))) - (builtins.concatLists (lib.attrValues (lib.mapAttrs (_: allLinux) jobsets.nix-tools.exes))) - ]; - }); -} -// (builtins.listToAttrs (map makeRelease [ "mainnet" "staging" ]))) + required-targets = jobs: [ + # targets are specified using above nomenclature: + jobs.nix-tools.tests.ouroboros-consensus.test-consensus.x86_64-linux + jobs.nix-tools.tests.ouroboros-consensus.test-storage.x86_64-linux + jobs.nix-tools.tests.ouroboros-network.tests.x86_64-linux + jobs.nix-tools.tests.ouroboros-network.cddl.x86_64-linux + jobs.nix-tools.tests.typed-protocols.tests.x86_64-linux + jobs.nix-tools.tests.io-sim.tests.x86_64-linux + + jobs.nix-tools.exes.ouroboros-network.x86_64-linux + jobs.nix-tools.exes.byron-proxy.x86_64-linux + jobs.network-pdf + (builtins.concatLists (map builtins.attrValues (builtins.attrValues jobs.tests))) + ]; +} (builtins.removeAttrs args ["ouroboros-network"])) diff --git a/stack.yaml b/stack.yaml index cfc893257e6..d3fc6645969 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,4 +1,5 @@ resolver: lts-12.26 +compiler: ghc-8.4.4 flags: ether: From bb9e2a0fc95c0b45919f275a2fe3a87795f3e23d Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Mon, 8 Jul 2019 23:31:17 -0400 Subject: [PATCH 07/30] simplify everything --- default.nix | 12 +- lib.nix | 78 ++-------- nix/launch/connect-to-cluster/default.nix | 181 ++++++++++++++++++++++ nix/scripts.nix | 28 ++++ release.nix | 86 +--------- 5 files changed, 234 insertions(+), 151 deletions(-) create mode 100755 nix/launch/connect-to-cluster/default.nix create mode 100644 nix/scripts.nix diff --git a/default.nix b/default.nix index b6bfddae5dc..118732c335c 100644 --- a/default.nix +++ b/default.nix @@ -29,7 +29,7 @@ # We will need to import the iohk-nix common lib, which includes # the nix-tools tooling. let - commonLib = import ./nix/iohk-common.nix; + commonLib = import ./lib.nix; # This file needs to export a function that takes # the arguments it is passed and forwards them to @@ -44,12 +44,12 @@ let # nix-build -A scripts.byron.validator.mainnet -o validator # ./proxy # ./validator - #scripts = import ./nix/scripts.nix { - # inherit commonLib nixTools; - # inherit customConfig; - #}; + cardanoConfig = commonLib.pkgs.callPackage ./nix/cardano-sl-config.nix {}; + scripts = import ./nix/scripts.nix { + inherit commonLib nixTools customConfig cardanoConfig; + }; #tests = import ./nix/nixos/tests { inherit (commonLib) pkgs; }; in { #inherit scripts tests; inherit (nixTools) nix-tools; -} +} // scripts diff --git a/lib.nix b/lib.nix index 2ffdbf37995..d73be020c29 100644 --- a/lib.nix +++ b/lib.nix @@ -1,14 +1,19 @@ let # Allow overriding pinned nixpkgs for debugging purposes via cardano_pkgs - fetchNixPkgs = let try = builtins.tryEval ; + # Imports the iohk-nix library. + # The version can be overridden for debugging purposes by setting + # NIX_PATH=iohk_nix=/path/to/iohk-nix + iohkNix = import ( + let try = builtins.tryEval ; in if try.success - then builtins.trace "using host " try.value - else import ./nix/fetch-nixpkgs.nix; - - # Function to import the pinned nixpkgs with necessary overlays, - # applied to the given args. - importPkgs = args: import fetchNixPkgs ({ overlays = [ (import ./nix/overlays/jemalloc.nix) ]; } // args); - + then builtins.trace "using host " try.value + else + let + spec = builtins.fromJSON (builtins.readFile ./nix/iohk-nix-src.json); + in builtins.fetchTarball { + url = "${spec.url}/archive/${spec.rev}.tar.gz"; + inherit (spec) sha256; + }) {}; # Gets the value of an environment variable, with a default if it's # unset or empty. maybeEnv = env: default: @@ -18,39 +23,9 @@ let then result else default; - # Removes files within a Haskell source tree which won't change the - # result of building the package. - # This is so that cached build products can be used whenever possible. - # It also applies the lib.cleanSource filter from nixpkgs which - # removes VCS directories, emacs backup files, etc. - cleanSourceTree = src: - if (builtins.typeOf src) == "path" - then lib.cleanSourceWith { - filter = with pkgs.stdenv; - name: type: let baseName = baseNameOf (toString name); in ! ( - # Filter out cabal build products. - baseName == "dist" || baseName == "dist-newstyle" || - baseName == "cabal.project.local" || - lib.hasPrefix ".ghc.environment" baseName || - # Filter out stack build products. - lib.hasPrefix ".stack-work" baseName || - # Filter out files which are commonly edited but don't - # affect the cabal build. - lib.hasSuffix ".nix" baseName - ); - src = lib.cleanSource src; - } else src; - - pkgs = import fetchNixPkgs {}; + pkgs = iohkNix.pkgs; lib = pkgs.lib; -in lib // (rec { - inherit fetchNixPkgs importPkgs cleanSourceTree; - # cardano-crypto is not a cardano-sl package. - isCardanoSL = name: lib.hasPrefix "cardano-" name && !(name == "cardano-crypto"); - isBenchmark = args: !((args.isExecutable or false) || (args.isLibrary or true)); - - # Insert this into builder scripts where programs require a UTF-8 - # locale to work. +in lib // iohkNix // (rec { utf8LocaleSetting = '' export LC_ALL=en_GB.UTF-8 export LANG=en_GB.UTF-8 @@ -93,27 +68,4 @@ in lib // (rec { (name: env: f (env // { environment = name; })) environments; - runHaskell = name: hspkgs: deps: env: code: let - ghc = hspkgs.ghcWithPackages deps; - flags = lib.optionalString pkgs.stdenv.isDarwin "-liconv"; # https://github.com/NixOS/nixpkgs/issues/46814 - builtBinary = pkgs.runCommand "${name}-binary" { buildInputs = [ ghc ]; } '' - mkdir -p $out/bin/ - ghc ${pkgs.writeText "${name}.hs" code} ${flags} -o $out/bin/${name} - ''; - in pkgs.runCommand name env '' - ${builtBinary}/bin/$name - ''; - - # Overrides the lib.commitIdFromGitRepo function in nixpkgs - commitIdFromGitRepo = import ./nix/commit-id.nix { inherit lib; }; - - # Plucks all the cardano-sl packages from the haskellPackages set, - # also adding -static variants which contain the gitrev. - getCardanoPackages = justStaticExecutablesGitRev: haskellPackages: - let - cslPackages = lib.filterAttrs (name: drv: isCardanoSL name) haskellPackages; - makeStatic = name: drv: lib.nameValuePair (name + "-static") (justStaticExecutablesGitRev drv); - in - cslPackages // lib.mapAttrs' makeStatic cslPackages; - }) diff --git a/nix/launch/connect-to-cluster/default.nix b/nix/launch/connect-to-cluster/default.nix new file mode 100755 index 00000000000..1241f890a96 --- /dev/null +++ b/nix/launch/connect-to-cluster/default.nix @@ -0,0 +1,181 @@ +with import ../../../lib.nix; + +{ stdenv, writeText, writeScript, curl + +, cardanoWallet, cardanoExplorer, cardanoTools +, cardanoConfig + +## options! +, environment ? "mainnet" +, stateDir ? maybeEnv "CARDANO_STATE_DIR" "state-${executable}-${environment}" +, executable ? "wallet" +, topologyFile ? null +, walletListen ? "127.0.0.1:8090" +, walletDocListen ? "127.0.0.1:8091" +, ekgListen ? "127.0.0.1:8000" +, ghcRuntimeArgs ? "-N2 -qg -A1m -I0 -T" +, additionalNodeArgs ? "" +, confFile ? null +, confKey ? null +, relays ? null +, debug ? false +, disableClientAuth ? false +, useLegacyDataLayer ? false +, extraParams ? "" +, useStackBinaries ? false +, tlsConfig ? {} +}: + +# TODO: DEVOPS-159: relays DNS should be more predictable +# TODO: DEVOPS-499: developer clusters based on runtime JSON +# TODO: DEVOPS-462: exchanges should use a different topology + +let + ifDebug = optionalString (debug); + ifDisableClientAuth = optionalString (disableClientAuth); + walletDataLayer = if useLegacyDataLayer then "--legacy-wallet" else ""; + env = if environment == "override" + then { inherit relays confKey confFile; } + else environments.${environment}; + executables = { + wallet = "${cardanoWallet}/bin/cardano-node"; + explorer = "${cardanoExplorer}/bin/cardano-explorer"; + x509gen = "${cardanoTools}/bin/cardano-x509-certificates"; + }; + ifWallet = optionalString (executable == "wallet"); + + topologyFileDefault = writeText "topology-${environment}" '' + wallet: + relays: [[{ host: ${env.relays} }]] + valency: 1 + fallbacks: 7 + ''; + configurationArgs = concatStringsSep " " [ + "--configuration-file ${env.confFile or "${cardanoConfig}/lib/configuration.yaml"}" + "--configuration-key ${env.confKey}" + ]; + + curlScript = writeScript "curl-wallet-${environment}" '' + #!${stdenv.shell} + + request_path=$1 + shift + + if [ -z "$request_path" ]; then + >&2 cat < Date: Tue, 9 Jul 2019 23:19:01 +0800 Subject: [PATCH 08/30] fix --- nix/iohk-nix-src.json | 6 +++--- nix/pkgs.nix | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nix/iohk-nix-src.json b/nix/iohk-nix-src.json index db0149b894d..fd25ba3dc69 100644 --- a/nix/iohk-nix-src.json +++ b/nix/iohk-nix-src.json @@ -1,7 +1,7 @@ { "url": "https://github.com/input-output-hk/iohk-nix", - "rev": "f7a952242798a0eeb5f00693979b8adfeff941bc", - "date": "2019-06-19T07:11:58+00:00", - "sha256": "0fyg9grb4b723i6qahb5r6j61i706k1axkmw4dga4q94h8sqlwxc", + "rev": "05d0b642c5d4a77cd645cc250a658d65e4757aae", + "date": "2019-07-09T23:18:02+08:00", + "sha256": "17r09fxfir9vcs97vii3jasz49ajkjy77xy0013lab1qkyp72vg6", "fetchSubmodules": false } diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 2924fc85a88..31b9b0d3209 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -31,6 +31,11 @@ let # Packages we wish to ignore version bounds of. # This is similar to jailbreakCabal, however it # does not require any messing with cabal files. + nonReinstallablePkgs = + [ "rts" "ghc" "ghc-prim" "integer-gmp" "integer-simple" "base" + "array" "deepseq" "pretty" "ghc-boot-th" "template-haskell" "ghc-heap" ]; + doHaddock = false; + doExactConfig = true; } ]; }; From 3f15a4f3df2086ea6d7047e49d94e2699933403e Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 13:34:27 -0400 Subject: [PATCH 09/30] daedalus bridge, docker images and demo cluster --- .gitignore | 2 +- default.nix | 12 +- nix/daedalus-bridge.nix | 22 +- nix/docker.nix | 9 +- nix/fetch-nixpkgs.nix | 6 - nix/ghc-boot.nix | 38 - nix/ghci.nix | 43 - nix/haskell-packages.nix | 38 - nix/iserv-proxy.nix | 45 - nix/jemalloc/common.nix | 32 - nix/jemalloc/jemalloc510.nix | 7 - .../launch/demo-cluster/default.nix | 27 +- .../launch/demo-cluster/make-topology.nix | 0 nix/libiserv.nix | 42 - nix/mingw_w64.nix | 77 -- nix/overlays/benchmark.nix | 15 - nix/overlays/debug.nix | 9 - nix/overlays/dont-check.nix | 7 - nix/overlays/faster-build.nix | 12 - nix/overlays/jemalloc.nix | 8 - nix/overlays/metric.nix | 7 - nix/overlays/required.nix | 73 - nix/patches/cardano-sl.patch | 13 - nix/patches/conduit-1.3.0.2.patch | 15 - nix/patches/cryptonite-openssl-0.7.patch | 13 - nix/patches/double-conversion-2.0.2.0.patch | 25 - nix/patches/file-embed-lzma-0.patch | 44 - nix/patches/ghc-8.0.2-darwin-rec-link.patch | 13 - .../ghc/0001-Stop-the-linker-panic.patch | 122 -- .../ghc/Cabal2201-allow-test-wrapper.patch | 72 - .../ghc/Cabal2201-no-hackage-tests.patch | 15 - .../ghc/MR95--ghc-pkg-deadlock-fix.patch | 61 - nix/patches/ghc/cabal-exe-ext-8.4.2.patch | 440 ------ nix/patches/ghc/dll-loader-8.4.2.patch | 34 - .../ghc/ghc-8.0.2-darwin-rec-link.patch | 13 - .../ghc/ghc-8.0.2-darwin-rec-link.patch~ | 13 - .../ghc-8.4.3-Cabal2201-SMP-test-fix.patch | 13 - ...c-8.4.3-Cabal2201-allow-test-wrapper.patch | 72 - ...ghc-8.4.3-Cabal2201-no-hackage-tests.patch | 15 - ....4.3-Cabal2201-response-file-support.patch | 59 - .../ghc/ghc-8.4.4-darwin-rec-link.patch | 13 - nix/patches/ghc/hsc2hs-8.4.2.patch | 1197 ----------------- nix/patches/ghc/lowercase-8.4.2.patch | 94 -- nix/patches/ghc/move-iserv-8.4.2.patch | 1001 -------------- .../ghc/outputtable-assert-8.4.2.patch | 30 - nix/patches/ghc/various-8.4.2.patch | 57 - nix/patches/streaming-commons-0.2.0.0.patch | 15 - nix/patches/x509-system-1.6.6.patch | 13 - nix/regenerate.sh | 2 +- nix/remote-iserv.nix | 36 - nix/rocksdb-prebuilt.nix | 30 - nix/scripts.nix | 18 +- nix/stack-shell.nix | 22 - nix/stack2nix.nix | 8 - nix/tests.nix | 12 + nix/update-iohk-nix.sh | 4 +- nixpkgs-src.json | 6 - node-ipc/shell.nix | 7 +- scripts/launch/connect-to-cluster/default.nix | 181 --- shell.nix | 96 -- 60 files changed, 73 insertions(+), 4352 deletions(-) delete mode 100644 nix/fetch-nixpkgs.nix delete mode 100644 nix/ghc-boot.nix delete mode 100644 nix/ghci.nix delete mode 100644 nix/haskell-packages.nix delete mode 100644 nix/iserv-proxy.nix delete mode 100644 nix/jemalloc/common.nix delete mode 100644 nix/jemalloc/jemalloc510.nix rename {scripts => nix}/launch/demo-cluster/default.nix (79%) rename {scripts => nix}/launch/demo-cluster/make-topology.nix (100%) delete mode 100644 nix/libiserv.nix delete mode 100644 nix/mingw_w64.nix delete mode 100644 nix/overlays/benchmark.nix delete mode 100644 nix/overlays/debug.nix delete mode 100644 nix/overlays/dont-check.nix delete mode 100644 nix/overlays/faster-build.nix delete mode 100644 nix/overlays/jemalloc.nix delete mode 100644 nix/overlays/metric.nix delete mode 100644 nix/overlays/required.nix delete mode 100644 nix/patches/cardano-sl.patch delete mode 100644 nix/patches/conduit-1.3.0.2.patch delete mode 100644 nix/patches/cryptonite-openssl-0.7.patch delete mode 100644 nix/patches/double-conversion-2.0.2.0.patch delete mode 100644 nix/patches/file-embed-lzma-0.patch delete mode 100644 nix/patches/ghc-8.0.2-darwin-rec-link.patch delete mode 100644 nix/patches/ghc/0001-Stop-the-linker-panic.patch delete mode 100644 nix/patches/ghc/Cabal2201-allow-test-wrapper.patch delete mode 100644 nix/patches/ghc/Cabal2201-no-hackage-tests.patch delete mode 100644 nix/patches/ghc/MR95--ghc-pkg-deadlock-fix.patch delete mode 100644 nix/patches/ghc/cabal-exe-ext-8.4.2.patch delete mode 100644 nix/patches/ghc/dll-loader-8.4.2.patch delete mode 100644 nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch delete mode 100644 nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch~ delete mode 100644 nix/patches/ghc/ghc-8.4.3-Cabal2201-SMP-test-fix.patch delete mode 100644 nix/patches/ghc/ghc-8.4.3-Cabal2201-allow-test-wrapper.patch delete mode 100644 nix/patches/ghc/ghc-8.4.3-Cabal2201-no-hackage-tests.patch delete mode 100644 nix/patches/ghc/ghc-8.4.3-Cabal2201-response-file-support.patch delete mode 100644 nix/patches/ghc/ghc-8.4.4-darwin-rec-link.patch delete mode 100644 nix/patches/ghc/hsc2hs-8.4.2.patch delete mode 100644 nix/patches/ghc/lowercase-8.4.2.patch delete mode 100644 nix/patches/ghc/move-iserv-8.4.2.patch delete mode 100644 nix/patches/ghc/outputtable-assert-8.4.2.patch delete mode 100644 nix/patches/ghc/various-8.4.2.patch delete mode 100644 nix/patches/streaming-commons-0.2.0.0.patch delete mode 100644 nix/patches/x509-system-1.6.6.patch delete mode 100644 nix/remote-iserv.nix delete mode 100644 nix/rocksdb-prebuilt.nix delete mode 100644 nix/stack-shell.nix delete mode 100644 nix/stack2nix.nix create mode 100644 nix/tests.nix delete mode 100644 nixpkgs-src.json delete mode 100755 scripts/launch/connect-to-cluster/default.nix delete mode 100644 shell.nix diff --git a/.gitignore b/.gitignore index a641084cd51..a85e11cf5dd 100644 --- a/.gitignore +++ b/.gitignore @@ -243,4 +243,4 @@ nix/.stack.nix/*.nix linguist-generated=true .stack-to-nix.cache linguist-generated=true nix/.stack-pkgs.nix linguist-generated=true script-runner/states - +test-state diff --git a/default.nix b/default.nix index 118732c335c..d331df9e701 100644 --- a/default.nix +++ b/default.nix @@ -30,6 +30,8 @@ # the nix-tools tooling. let commonLib = import ./lib.nix; + pkgs = commonLib.pkgs; + src = commonLib.cleanSourceHaskell ./.; # This file needs to export a function that takes # the arguments it is passed and forwards them to @@ -44,12 +46,18 @@ let # nix-build -A scripts.byron.validator.mainnet -o validator # ./proxy # ./validator - cardanoConfig = commonLib.pkgs.callPackage ./nix/cardano-sl-config.nix {}; + cardanoConfig = pkgs.callPackage ./nix/cardano-sl-config.nix {}; scripts = import ./nix/scripts.nix { inherit commonLib nixTools customConfig cardanoConfig; }; + tests = import ./nix/tests.nix { + inherit commonLib src; + }; + daedalus-bridge = pkgs.callPackage ./nix/daedalus-bridge.nix { + inherit nixTools cardanoConfig; + }; #tests = import ./nix/nixos/tests { inherit (commonLib) pkgs; }; in { - #inherit scripts tests; + inherit daedalus-bridge tests; inherit (nixTools) nix-tools; } // scripts diff --git a/nix/daedalus-bridge.nix b/nix/daedalus-bridge.nix index f46f8661416..a64f8977e7e 100644 --- a/nix/daedalus-bridge.nix +++ b/nix/daedalus-bridge.nix @@ -1,10 +1,14 @@ { runCommand, stdenv -, cardano-sl-node, cardano-sl-tools, cardano-wallet, cardano-sl-config -, version, gitrev, buildId ? null }: +, nixTools, cardanoConfig +, version ? "unstable", gitrev ? "abcdef", buildId ? null }: with stdenv.lib; -runCommand "cardano-daedalus-bridge-${version}" { +let + cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; + cardanoTools = nixTools.nix-tools.exes.cardano-sl-tools; + +in runCommand "cardano-daedalus-bridge-${version}" { inherit version gitrev buildId; } '' # Generate daedalus-bridge @@ -15,12 +19,12 @@ runCommand "cardano-daedalus-bridge-${version}" { # this comes from cardano-sl.cabal, via an inherit in default.nix echo ${version} > version - cp --no-preserve=mode -R ${cardano-sl-config}/lib config - cp ${cardano-sl-config}/log-configs/daedalus.yaml $out/config/log-config-prod.yaml - cp ${cardano-sl-tools}/bin/cardano-launcher bin - cp ${cardano-sl-tools}/bin/wallet-extractor bin - cp ${cardano-sl-tools}/bin/cardano-x509-certificates bin - cp ${cardano-wallet}/bin/cardano-node bin + cp --no-preserve=mode -R ${cardanoConfig}/lib config + cp ${cardanoConfig}/log-configs/daedalus.yaml $out/config/log-config-prod.yaml + cp ${cardanoTools}/bin/cardano-launcher bin + cp ${cardanoTools}/bin/wallet-extractor bin + cp ${cardanoTools}/bin/cardano-x509-certificates bin + cp ${cardanoWallet}/bin/cardano-node bin # test that binaries exit with 0 ./bin/cardano-node --help > /dev/null diff --git a/nix/docker.nix b/nix/docker.nix index 9b2b6e197bf..d038e174796 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -1,12 +1,13 @@ { writeScriptBin, dockerTools , glibcLocales, iana-etc, openssl, bashInteractive, coreutils, utillinux, iproute, iputils, curl, socat -, cardano-sl-node-static, cardano-sl-config, version +, cardanoNode, cardanoConfig , environment ? "mainnet" , type ? null , connect , connectArgs ? {} +, version ? "unstable" }: # assertOneOf "type" type [ "wallet" "explorer" "node" ]; @@ -46,12 +47,12 @@ let exit 1 cd /state - node_args="--db-path /state/db --rebuild-db --listen 0.0.0.0:3000 --json-log /state/logs/node.json --logs-prefix /state/logs --log-config /state/logs/log-config-node.yaml --metrics +RTS -N2 -qg -A1m -I0 -T -RTS --configuration-file ${cardano-sl-config}/lib/configuration.yaml --configuration-key ${confKey}" + node_args="--db-path /state/db --rebuild-db --listen 0.0.0.0:3000 --json-log /state/logs/node.json --logs-prefix /state/logs --log-config /state/logs/log-config-node.yaml --metrics +RTS -N2 -qg -A1m -I0 -T -RTS --configuration-file ${cardanoConfig}/lib/configuration.yaml --configuration-key ${confKey}" - exec ${cardano-sl-node-static}/bin/cardano-node-simple $node_args "$@" + exec ${cardanoNode}/bin/cardano-node-simple $node_args "$@" '') ]; - + in dockerTools.buildImage { name = "cardano-sl"; tag = "${version}${if (type != null) then "-" + type else ""}-${environment}"; diff --git a/nix/fetch-nixpkgs.nix b/nix/fetch-nixpkgs.nix deleted file mode 100644 index 1ffd53811cd..00000000000 --- a/nix/fetch-nixpkgs.nix +++ /dev/null @@ -1,6 +0,0 @@ -let - spec = builtins.fromJSON (builtins.readFile ../nixpkgs-src.json); -in builtins.fetchTarball { - url = "${spec.url}/archive/${spec.rev}.tar.gz"; - inherit (spec) sha256; -} diff --git a/nix/ghc-boot.nix b/nix/ghc-boot.nix deleted file mode 100644 index 7824379f5de..00000000000 --- a/nix/ghc-boot.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.22"; - identifier = { - name = "ghc-boot"; - version = "8.4.4"; - }; - license = "BSD-3-Clause"; - copyright = ""; - maintainer = "ghc-devs@haskell.org"; - author = ""; - homepage = ""; - url = ""; - synopsis = "Shared functionality between GHC and its boot libraries"; - description = "This library is shared between GHC, ghc-pkg, and other boot\nlibraries.\n\nA note about \"GHC.PackageDb\": it only deals with the subset of\nthe package database that the compiler cares about: modules\npaths etc and not package metadata like description, authors\netc. It is thus not a library interface to ghc-pkg and is *not*\nsuitable for modifying GHC package databases.\n\nThe package database format and this library are constructed in\nsuch a way that while ghc-pkg depends on Cabal, the GHC library\nand program do not have to depend on Cabal."; - buildType = "Simple"; - }; - components = { - "library" = { - depends = [ - (hsPkgs.base) - (hsPkgs.binary) - (hsPkgs.bytestring) - (hsPkgs.directory) - (hsPkgs.filepath) - (hsPkgs.ghc-boot-th) - ]; - }; - }; - } // rec { src = pkgs.fetchurl { url = https://s3.eu-central-1.amazonaws.com/ci-static/ghc-cross-windows/ghc-boot-8.4.4.tar.gz; sha256 = "1y72cixzk2zrnha8rqyx9j2q109jb64p1l14g3smvrn9nwwnif2m"; }; } diff --git a/nix/ghci.nix b/nix/ghci.nix deleted file mode 100644 index c1f761de889..00000000000 --- a/nix/ghci.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = { ghci = false; }; - package = { - specVersion = "1.10"; - identifier = { - name = "ghci"; - version = "8.4.4"; - }; - license = "BSD-3-Clause"; - copyright = ""; - maintainer = "ghc-devs@haskell.org"; - author = ""; - homepage = ""; - url = ""; - synopsis = "The library supporting GHC's interactive interpreter"; - description = "This library offers interfaces which mediate interactions between the\n@ghci@ interactive shell and @iserv@, GHC's out-of-process interpreter\nbackend."; - buildType = "Simple"; - }; - components = { - "library" = { - depends = [ - (hsPkgs.array) - (hsPkgs.base) - (hsPkgs.binary) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.deepseq) - (hsPkgs.filepath) - (hsPkgs.ghc-boot) - (hsPkgs.ghc-boot-th) - (hsPkgs.template-haskell) - (hsPkgs.transformers) - ] ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix); - }; - }; - } // rec { src = pkgs.fetchurl { url = https://s3.eu-central-1.amazonaws.com/ci-static/ghc-cross-windows/ghci-8.4.4.tar.gz; sha256 = "1xr91qg32f1z0r380yypkzayd90936y5chhdbqf9g02x7rcvnv18"; }; } diff --git a/nix/haskell-packages.nix b/nix/haskell-packages.nix deleted file mode 100644 index 71a3a7d8aaf..00000000000 --- a/nix/haskell-packages.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ pkgs -, forceDontCheck -, enableProfiling -, enablePhaseMetrics -, enableBenchmarks -, fasterBuild -, enableDebugging -}: - -with pkgs.lib; - -let - # the GHC we are using - ghc = pkgs.haskell.compiler.ghc844; - - # This will yield a set of haskell packages, based on the given compiler. - cardanoPkgsBase = ((import ../pkgs { inherit pkgs; }).override { - inherit ghc; - }); - - # Overlay logic for *haskell* packages. - requiredOverlay = import ./overlays/required.nix { inherit pkgs enableProfiling; }; - benchmarkOverlay = import ./overlays/benchmark.nix { inherit pkgs; }; - debugOverlay = import ./overlays/debug.nix { inherit pkgs; }; - fasterBuildOverlay = import ./overlays/faster-build.nix { inherit pkgs; }; - dontCheckOverlay = import ./overlays/dont-check.nix { inherit pkgs; }; - metricOverlay = import ./overlays/metric.nix { inherit pkgs; }; - - activeOverlays = [ requiredOverlay ] - ++ optional enablePhaseMetrics metricOverlay - ++ optional enableBenchmarks benchmarkOverlay - ++ optional enableDebugging debugOverlay - ++ optional forceDontCheck dontCheckOverlay - ++ optional fasterBuild fasterBuildOverlay; - -in - # Apply all the overlays on top of the base package set generated by stack2nix - builtins.foldl' (pkgs: overlay: pkgs.extend overlay) cardanoPkgsBase activeOverlays diff --git a/nix/iserv-proxy.nix b/nix/iserv-proxy.nix deleted file mode 100644 index 3f0f19d6a59..00000000000 --- a/nix/iserv-proxy.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.10"; - identifier = { - name = "iserv-proxy"; - version = "8.5"; - }; - license = "BSD-3-Clause"; - copyright = "XXX"; - maintainer = "XXX"; - author = "XXX"; - homepage = ""; - url = ""; - synopsis = "iserv allows GHC to delegate Tempalte Haskell computations"; - description = "GHC can be provided with a path to the iserv binary with\n@-pgmi=/path/to/iserv-bin@, and will in combination with\n@-fexternal-interpreter@, compile Template Haskell though the\n@iserv-bin@ delegate. This is very similar to how ghcjs has been\ncompiling Template Haskell, by spawning a separate delegate (so\ncalled runner on the javascript vm) and evaluating the splices\nthere.\n\niserv can also be used in combination with cross compilation. For\nthis, the @iserv-proxy@ needs to be built on the host, targeting the\nhost (as it is running on the host). @cabal install -flibrary\n-fproxy@ will yield the proxy.\n\nUsing the cabal for the target @arch-platform-target-cabal install\n-flibrary@ will build the required library that contains the ffi\n@startSlave@ function, which needs to be invoked on the target\n(e.g. in an iOS application) to start the remote iserv slave.\n\ncalling the GHC cross compiler with @-fexternal-interpreter\n-pgmi=\$HOME/.cabal/bin/iserv-proxy -opti\\ -opti\\@\nwill cause it to compile Template Haskell via the remote at \\.\n\nThus to get cross compilation with Template Haskell follow the\nfollowing receipt:\n\n* compile the iserv library for your target\n\n> iserv \$ arch-platform-target-cabal install -flibrary\n\n* setup an application for your target that calls the\n* startSlave function. This could be either haskell or your\n* targets ffi capable language, if needed.\n\n> void startSlave(false /* verbose */, 5000 /* port */,\n> \"/path/to/storagelocation/on/target\");\n\n* build the iserv-proxy\n\n> iserv \$ cabal install -flibrary -fproxy\n* Start your iserv-slave app on your target running on say @10.0.0.1:5000@\n* compiler your sources with -fexternal-interpreter and the proxy\n\n> project \$ arch-platform-target-ghc ModuleContainingTH.hs \\\n> -fexternal-interpreter \\\n> -pgmi=\$HOME/.cabal/bin/iserv-proxy \\\n> -opti10.0.0.1 -opti5000\n\nShould something not work as expected, provide @-opti-v@ for verbose\nlogging of the @iserv-proxy@."; - buildType = "Simple"; - }; - components = { - exes = { - "iserv-proxy" = { - depends = [ - (hsPkgs.array) - (hsPkgs.base) - (hsPkgs.binary) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.deepseq) - (hsPkgs.ghci) - (hsPkgs.directory) - (hsPkgs.network) - (hsPkgs.filepath) - (hsPkgs.libiserv) - ]; - }; - }; - }; - } // rec { src = pkgs.fetchurl { url = https://s3.eu-central-1.amazonaws.com/ci-static/ghc-cross-windows/iserv-proxy-8.4.4.tar.gz; sha256 = "121mxf3575d9rh7z1nhahx0g2ch7pxqbr6fvy7557ddqn49w2114"; }; } diff --git a/nix/jemalloc/common.nix b/nix/jemalloc/common.nix deleted file mode 100644 index 00f9987ed83..00000000000 --- a/nix/jemalloc/common.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ stdenv, fetchurl, version, sha256, configureFlags ? [], ... }@args: - -stdenv.mkDerivation (rec { - name = "jemalloc-${version}"; - inherit version; - - src = fetchurl { - url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${name}.tar.bz2"; - inherit sha256; - }; - - # By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which - # then stops downstream builds (mariadb in particular) from detecting it. This - # option should remove the prefix and give us a working jemalloc. - configureFlags = stdenv.lib.optional stdenv.isDarwin "--with-jemalloc-prefix=" - ++ configureFlags; - doCheck = true; - - enableParallelBuilding = true; - - meta = with stdenv.lib; { - homepage = http://jemalloc.net; - description = "General purpose malloc(3) implementation"; - longDescription = '' - malloc(3)-compatible memory allocator that emphasizes fragmentation - avoidance and scalable concurrency support. - ''; - license = licenses.bsd2; - platforms = platforms.all; - maintainers = with maintainers; [ wkennington ]; - }; -} // (builtins.removeAttrs args [ "stdenv" "fetchurl" "version" "sha256" ])) diff --git a/nix/jemalloc/jemalloc510.nix b/nix/jemalloc/jemalloc510.nix deleted file mode 100644 index 7764fcce7c1..00000000000 --- a/nix/jemalloc/jemalloc510.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ stdenv, fetchurl, fetchpatch }: -import ./common.nix { - inherit stdenv fetchurl; - version = "5.1.0"; - sha256 = "0s3jpcyhzia8d4k0xyc67is78kg416p9yc3c2f9w6fhhqqffd5jk"; - configureFlags = ["--disable-initial-exec-tls"]; -} diff --git a/scripts/launch/demo-cluster/default.nix b/nix/launch/demo-cluster/default.nix similarity index 79% rename from scripts/launch/demo-cluster/default.nix rename to nix/launch/demo-cluster/default.nix index fbfffdd708b..a64c519041a 100755 --- a/scripts/launch/demo-cluster/default.nix +++ b/nix/launch/demo-cluster/default.nix @@ -3,9 +3,7 @@ with import ../../../lib.nix; { stdenv, runCommand, writeText, writeScript , jq, coreutils, curl, gnused, openssl -, cardano-sl-cluster, cardano-sl, cardano-wallet - -, useStackBinaries ? false +, cardanoCluster, cardanoConfig, cardanoWallet ## lots of options! , stateDir ? maybeEnv "CARDANO_STATE_DIR" "./state-demo" @@ -25,10 +23,9 @@ with import ../../../lib.nix; }: let - stackExec = optionalString useStackBinaries "stack exec -- "; - cardanoDeps = [ cardano-sl-cluster cardano-wallet ]; + cardanoDeps = [ cardanoCluster cardanoWallet ]; demoClusterDeps = [ jq coreutils curl gnused openssl ]; - allDeps = demoClusterDeps ++ (optionals (!useStackBinaries ) cardanoDeps); + allDeps = demoClusterDeps ++ cardanoDeps; ifWallet = optionalString (runWallet); numEdgeNodes = if runWallet then 1 else 0; ifKeepAlive = optionalString (keepAlive); @@ -36,14 +33,6 @@ let assetLockFile = writeText "asset-lock-file" (intersperse "\n" assetLockAddresses); ifAssetLock = optionalString (assetLockAddresses != []); ifDisableClientAuth = optionalString disableClientAuth; - configFiles = runCommand "cardano-config" {} '' - mkdir -pv $out - cd $out - cp -vi ${cardano-sl.src + "/configuration.yaml"} configuration.yaml - cp -vi ${cardano-sl.src + "/mainnet-genesis-dryrun-with-stakeholders.json"} mainnet-genesis-dryrun-with-stakeholders.json - cp -vi ${cardano-sl.src + "/mainnet-genesis.json"} mainnet-genesis.json - ''; - prepareGenesis = callPackage ../../prepare-genesis { inherit numCoreNodes stateDir; configurationKey = "testnet_full"; @@ -54,7 +43,7 @@ in writeScript "demo-cluster" '' #!${stdenv.shell} -e export PATH=${stdenv.lib.makeBinPath allDeps}:$PATH export DEMO_STATE_DIR=${stateDir} - export DEMO_CONFIGURATION_FILE=${configFiles}/configuration.yaml + export DEMO_CONFIGURATION_FILE=${cardanoConfig}/configuration.yaml export DEMO_SYSTEM_START=$(($(date +%s) + 14)) ${ifAssetLock "export DEMO_ASSET_LOCK_FILE=${assetLockFile}"} ${ifDisableClientAuth "export DEMO_NO_CLIENT_AUTH=True"} @@ -77,13 +66,13 @@ in writeScript "demo-cluster" '' trap "stop_cardano" INT TERM echo "Launching a demo cluster..." - ${stackExec}cardano-sl-cluster-prepare-environment "DEMO_" --cores ${builtins.toString numCoreNodes} --relays ${builtins.toString numRelayNodes} --edges ${builtins.toString numEdgeNodes} - ${stackExec}cardano-sl-cluster-demo --cores ${builtins.toString numCoreNodes} --relays ${builtins.toString numRelayNodes} --edges 0 & + cardano-sl-cluster-prepare-environment "DEMO_" --cores ${builtins.toString numCoreNodes} --relays ${builtins.toString numRelayNodes} --edges ${builtins.toString numEdgeNodes} + cardano-sl-cluster-demo --cores ${builtins.toString numCoreNodes} --relays ${builtins.toString numRelayNodes} --edges 0 & pidCluster=$! ${ifWallet '' - ${stackExec}cardano-node \ - --configuration-file ${configFiles}/configuration.yaml \ + cardano-node \ + --configuration-file ${cardanoConfig}/configuration.yaml \ --tlscert ${stateDir}/tls/edge/server.crt \ --tlskey ${stateDir}/tls/edge/server.key \ --tlsca ${stateDir}/tls/edge/ca.crt \ diff --git a/scripts/launch/demo-cluster/make-topology.nix b/nix/launch/demo-cluster/make-topology.nix similarity index 100% rename from scripts/launch/demo-cluster/make-topology.nix rename to nix/launch/demo-cluster/make-topology.nix diff --git a/nix/libiserv.nix b/nix/libiserv.nix deleted file mode 100644 index d58ad890a89..00000000000 --- a/nix/libiserv.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = { network = false; }; - package = { - specVersion = "1.10"; - identifier = { - name = "libiserv"; - version = "8.5"; - }; - license = "BSD-3-Clause"; - copyright = "XXX"; - maintainer = "XXX"; - author = "XXX"; - homepage = ""; - url = ""; - synopsis = "Provides shared functionality between iserv and iserv-proxy"; - description = ""; - buildType = "Simple"; - }; - components = { - "library" = { - depends = ([ - (hsPkgs.base) - (hsPkgs.binary) - (hsPkgs.bytestring) - (hsPkgs.containers) - (hsPkgs.deepseq) - (hsPkgs.ghci) - ] ++ pkgs.lib.optionals (flags.network) [ - (hsPkgs.network) - (hsPkgs.directory) - (hsPkgs.filepath) - ]) ++ pkgs.lib.optional (!system.isWindows) (hsPkgs.unix); - }; - }; - } // rec { src = pkgs.fetchurl { url = https://s3.eu-central-1.amazonaws.com/ci-static/ghc-cross-windows/libiserv-8.4.4.tar.gz; sha256 = "1k2prsqpxpi0r8wfgjfqna1w5h5fcpwnn0v8i9cc3d1nidmn6g80"; }; } diff --git a/nix/mingw_w64.nix b/nix/mingw_w64.nix deleted file mode 100644 index be7f8700fb6..00000000000 --- a/nix/mingw_w64.nix +++ /dev/null @@ -1,77 +0,0 @@ -# Cross compilation logic. -# Returns override fields for use with nix-tools. -{ stdenv -, lib -, writeScriptBin -, wine -, mingw_w64_pthreads -, iserv-proxy -, remote-iserv -, gmp -# extra libraries. Their dlls are copied -# when tests are run. -, extra-test-libs ? [] -}: -let - ################################################################################ - # Build logic (TH support via remote iserv via wine) - # - setupBuildFlags = map (opt: "--ghc-option=" + opt) [ - "-fexternal-interpreter" - "-pgmi" "${iserv-proxy}/bin/iserv-proxy" - "-opti" "127.0.0.1" "-opti" "$PORT" - # TODO: this should be automatically injected based on the extraLibrary. - "-L${mingw_w64_pthreads}/lib" - "-L${gmp}/lib" - ]; - preBuild = '' - # unset the configureFlags. - # configure should have run already - # without restting it, wine might fail - # due to a too large environment. - unset configureFlags - PORT=$((5000 + $RANDOM % 5000)) - echo "---> Starting remote-iserv on port $PORT" - WINEDLLOVERRIDES="winemac.drv=d" WINEDEBUG=-all+error WINEPREFIX=$TMP ${wine}/bin/wine64 ${remote-iserv}/bin/remote-iserv.exe tmp $PORT & - echo "---| remote-iserv should have started on $PORT" - RISERV_PID=$! - ''; - postBuild = '' - echo "---> killing remote-iserv..." - kill $RISERV_PID - ''; - - ################################################################################ - # Test logic via wine - # - wineTestWrapper = writeScriptBin "test-wrapper" '' - #!${stdenv.shell} - set -euo pipefail - WINEDLLOVERRIDES="winemac.drv=d" WINEDEBUG=-all+error LC_ALL=en_US.UTF-8 WINEPREFIX=$TMP ${wine}/bin/wine64 $@* - ''; - setupTestFlags = [ "--test-wrapper ${wineTestWrapper}/bin/test-wrapper" ]; - preCheck = '' - echo "================================================================================" - echo "RUNNING TESTS for $name via wine64" - echo "================================================================================" - echo "Copying extra test libraries ..." - for p in ${lib.concatStringsSep " "extra-test-libs}; do - find "$p" -iname '*.dll' -exec cp {} . \; - done - # copy all .dlls into the local directory. - # we ask ghc-pkg for *all* dynamic-library-dirs and then iterate over the unique set - # to copy over dlls as needed. - echo "Copying library dependencies..." - for libdir in $(x86_64-pc-mingw32-ghc-pkg --package-db=$packageConfDir field "*" dynamic-library-dirs --simple-output|xargs|sed 's/ /\n/g'|sort -u); do - if [ -d "$libdir" ]; then - find "$libdir" -iname '*.dll' -exec cp {} . \; - fi - done - ''; - postCheck = '' - echo "================================================================================" - echo "END RUNNING TESTS" - echo "================================================================================" - ''; - -in { inherit preBuild postBuild preCheck postCheck setupBuildFlags setupTestFlags; } diff --git a/nix/overlays/benchmark.nix b/nix/overlays/benchmark.nix deleted file mode 100644 index cf1adffcc22..00000000000 --- a/nix/overlays/benchmark.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs }: - -with import ../../lib.nix; - -self: super: { - mkDerivation = args: super.mkDerivation (args // optionalAttrs (isCardanoSL args.pname) { - # Enables building but not running of benchmarks for all - # cardano-sl packages when enableBenchmarks argument is true. - doBenchmark = true; - configureFlags = (args.configureFlags or []) ++ ["--enable-benchmarks"]; - } // optionalAttrs (isBenchmark args) { - # Provide a dummy installPhase for benchmark packages. - installPhase = "mkdir -p $out"; - }); -} diff --git a/nix/overlays/debug.nix b/nix/overlays/debug.nix deleted file mode 100644 index 6d96e3f7186..00000000000 --- a/nix/overlays/debug.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ pkgs }: - -self: super: { - mkDerivation = args: super.mkDerivation (args // { - # TODO: DEVOPS-355 - dontStrip = true; - configureFlags = (args.configureFlags or []) ++ [ "--ghc-options=-g --disable-executable-stripping --disable-library-stripping" "--profiling-detail=toplevel-functions"]; - }); - } diff --git a/nix/overlays/dont-check.nix b/nix/overlays/dont-check.nix deleted file mode 100644 index 8d7a0a79cb4..00000000000 --- a/nix/overlays/dont-check.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs }: - -self: super: { - mkDerivation = args: super.mkDerivation (args // { - doCheck = false; - }); - } diff --git a/nix/overlays/faster-build.nix b/nix/overlays/faster-build.nix deleted file mode 100644 index e5a7d482a68..00000000000 --- a/nix/overlays/faster-build.nix +++ /dev/null @@ -1,12 +0,0 @@ -# Disabling optimization for cardano-sl packages will -# return a build ~20% faster (measured in DEVOPS-1032). - -{ pkgs }: - -with import ../../lib.nix; - -self: super: { - mkDerivation = args: super.mkDerivation (args // optionalAttrs (isCardanoSL args.pname) { - configureFlags = (args.configureFlags or []) ++ [ "--ghc-options=-O0" ]; - }); -} diff --git a/nix/overlays/jemalloc.nix b/nix/overlays/jemalloc.nix deleted file mode 100644 index e0b0c948fd5..00000000000 --- a/nix/overlays/jemalloc.nix +++ /dev/null @@ -1,8 +0,0 @@ -self: super: { - # jemalloc has a bug that caused cardano-sl-db to fail to link (via - # rocksdb, which can use jemalloc). - # https://github.com/jemalloc/jemalloc/issues/937 - # Using jemalloc 510 with the --disable-initial-exec-tls flag seems to - # fix it. - jemalloc = self.callPackage ../jemalloc/jemalloc510.nix {}; -} diff --git a/nix/overlays/metric.nix b/nix/overlays/metric.nix deleted file mode 100644 index 2053070e9ab..00000000000 --- a/nix/overlays/metric.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs }: - -self: super: { - mkDerivation = args: super.mkDerivation (args // { - enablePhaseMetrics = true; - }); - } diff --git a/nix/overlays/required.nix b/nix/overlays/required.nix deleted file mode 100644 index a3bbc302a87..00000000000 --- a/nix/overlays/required.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ pkgs, enableProfiling }: - -with pkgs.haskell.lib; - -with import ../../lib.nix; - -let - addRealTimeTestLogs = drv: overrideCabal drv (attrs: { - testTarget = "--show-details=streaming"; - }); -in - -self: super: { - - ######################################################################## - # Overides of Cardano SL packages - - cardano-sl-core = overrideCabal super.cardano-sl-core (drv: { - configureFlags = (drv.configureFlags or []) ++ [ - "-f-asserts" - ]; - }); - cardano-sl = overrideCabal super.cardano-sl (drv: { - # production full nodes shouldn't use wallet as it means different constants - configureFlags = (drv.configureFlags or []) ++ [ - "-f-asserts" - ]; - passthru = { - inherit enableProfiling; - }; - }); - cardano-sl-client = addRealTimeTestLogs super.cardano-sl-client; - cardano-sl-generator = addRealTimeTestLogs super.cardano-sl-generator; - cardano-sl-networking = addRealTimeTestLogs super.cardano-sl-networking; - data-clist = doJailbreak super.data-clist; - mtl = null; - stm = null; - text = null; - parsec = null; - - ######################################################################## - # The base Haskell package builder - - mkDerivation = args: super.mkDerivation (args // { - enableLibraryProfiling = enableProfiling; - enableExecutableProfiling = enableProfiling; - splitCheck = true; - # Static linking for everything to work around - # https://ghc.haskell.org/trac/ghc/ticket/14444 - # This will be the default in nixpkgs since - # https://github.com/NixOS/nixpkgs/issues/29011 - enableSharedExecutables = false; - } // optionalAttrs (args ? src) { - src = cleanSourceTree args.src; - }); - - ######################################################################## - # Configuration of overrides for other dependencies - - # Undo configuration-nix.nix change to hardcode security binary on darwin - # This is needed for macOS binary not to fail during update system (using http-client-tls) - # Instead, now the binary is just looked up in $PATH as it should be installed on any macOS - x509-system = overrideDerivation super.x509-system (drv: { - postPatch = ":"; - }); - - # TODO: get rid of pthreads option once cryptonite 0.25 is released - # DEVOPS-393: https://github.com/haskell-crypto/cryptonite/issues/193 - cryptonite = appendPatch (appendConfigureFlag super.cryptonite "--ghc-option=-optl-pthread") ../../pkgs/cryptonite-segfault-blake.patch; - - # Due to https://github.com/input-output-hk/stack2nix/issues/56 - hfsevents = self.callPackage ../../pkgs/hfsevents.nix { inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa CoreServices; }; - } diff --git a/nix/patches/cardano-sl.patch b/nix/patches/cardano-sl.patch deleted file mode 100644 index 15bed8c15f6..00000000000 --- a/nix/patches/cardano-sl.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/Pos/Util/Config.hs b/src/Pos/Util/Config.hs -index 2450b4e0a9..801a12928e 100644 ---- a/src/Pos/Util/Config.hs -+++ b/src/Pos/Util/Config.hs -@@ -38,7 +38,7 @@ embedYamlObject name marker parser = do - Just dir -> return (dir name) - Nothing -> error $ toText $ - "Could not find " ++ marker ++ " for path: " ++ srcFP -- TH.qAddDependentFile path -+ -- TH.qAddDependentFile path - TH.runIO (Y.decodeFileEither path) >>= \case - Right x -> parser x - Left err -> templateHaskellError $ diff --git a/nix/patches/conduit-1.3.0.2.patch b/nix/patches/conduit-1.3.0.2.patch deleted file mode 100644 index 7de92be855a..00000000000 --- a/nix/patches/conduit-1.3.0.2.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/System/Win32File.hsc b/src/System/Win32File.hsc -index a524c77..8e8071d 100644 ---- a/src/System/Win32File.hsc -+++ b/src/System/Win32File.hsc -@@ -31,8 +31,8 @@ import Data.ByteString.Lazy.Internal (defaultChunkSize) - - - #include --#include --#include -+#include -+#include - #include - - newtype OFlag = OFlag CInt diff --git a/nix/patches/cryptonite-openssl-0.7.patch b/nix/patches/cryptonite-openssl-0.7.patch deleted file mode 100644 index 4dc8312abe6..00000000000 --- a/nix/patches/cryptonite-openssl-0.7.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cryptonite-openssl.cabal b/cryptonite-openssl.cabal -index ceb275a..96994b2 100644 ---- a/cryptonite-openssl.cabal -+++ b/cryptonite-openssl.cabal -@@ -39,7 +39,7 @@ Library - ghc-options: -Wall -fwarn-tabs -optc-O3 - default-language: Haskell2010 - if os(mingw32) || os(windows) -- extra-libraries: eay32, ssl32 -+ extra-libraries: crypto - else - if os(osx) - include-dirs: /usr/local/opt/openssl/include diff --git a/nix/patches/double-conversion-2.0.2.0.patch b/nix/patches/double-conversion-2.0.2.0.patch deleted file mode 100644 index ac007f8e8d4..00000000000 --- a/nix/patches/double-conversion-2.0.2.0.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/double-conversion.cabal b/double-conversion.cabal -index 96114ee..090e7ab 100644 ---- a/double-conversion.cabal -+++ b/double-conversion.cabal -@@ -71,16 +71,10 @@ library - double-conversion/src/fixed-dtoa.cc - double-conversion/src/strtod.cc - -- if os(windows) -- if arch(x86_64) -- extra-libraries: stdc++-6 gcc_s_seh-1 -- else -- extra-libraries: stdc++-6 gcc_s_dw2-1 -- else -- if os(darwin) -- extra-libraries: c++ -- else -- extra-libraries: stdc++ -+ if os(darwin) -+ extra-libraries: c++ -+ else -+ extra-libraries: stdc++ - - include-dirs: - double-conversion/src diff --git a/nix/patches/file-embed-lzma-0.patch b/nix/patches/file-embed-lzma-0.patch deleted file mode 100644 index 089f555cf3e..00000000000 --- a/nix/patches/file-embed-lzma-0.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/src/FileEmbedLzma.hs b/src/FileEmbedLzma.hs -index ca0c394..bc1960f 100644 ---- a/src/FileEmbedLzma.hs -+++ b/src/FileEmbedLzma.hs -@@ -36,7 +36,6 @@ import Data.Foldable (for_) - import Data.Functor.Compose (Compose (..)) - import Data.Int (Int64) - import Language.Haskell.TH --import Language.Haskell.TH.Syntax (qAddDependentFile) - import System.Directory - (doesDirectoryExist, getDirectoryContents) - import System.FilePath (makeRelative, ()) -@@ -124,7 +123,6 @@ concatEntries xs = (bslEndo BSL.empty, ys) - embedDir :: FilePath -> Q Exp - embedDir topdir = do - pairs' <- runIO $ listDirectoryFiles topdir -- for_ pairs' $ qAddDependentFile . fst - let pairs = makeAllRelative topdir pairs' - embedPairs pairs - -@@ -151,7 +149,6 @@ embedPairs pairs = do - embedRecursiveDir :: FilePath -> Q Exp - embedRecursiveDir topdir = do - pairs' <- runIO $ listRecursiveDirectoryFiles topdir -- for_ pairs' $ qAddDependentFile . fst - let pairs = makeAllRelative topdir pairs' - embedPairs pairs - -@@ -162,7 +159,6 @@ embedRecursiveDir topdir = do - -- | Embed a lazy 'Data.ByteString.Lazy.ByteString' from a file. - embedLazyByteString :: FilePath -> Q Exp - embedLazyByteString fp = do -- qAddDependentFile fp - bsl <- runIO $ BSL.readFile fp - lazyBytestringE bsl - -@@ -173,7 +169,6 @@ embedByteString fp = [| BSL.toStrict $(embedLazyByteString fp) :: BS.ByteString - -- | Embed a lazy 'Data.Text.Lazy.Text' from a UTF8-encoded file. - embedLazyText :: FilePath -> Q Exp - embedLazyText fp = do -- qAddDependentFile fp - bsl <- runIO $ BSL.readFile fp - case TLE.decodeUtf8' bsl of - Left e -> reportError (show e) diff --git a/nix/patches/ghc-8.0.2-darwin-rec-link.patch b/nix/patches/ghc-8.0.2-darwin-rec-link.patch deleted file mode 100644 index 89e89367147..00000000000 --- a/nix/patches/ghc-8.0.2-darwin-rec-link.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs -index acd0d61..3e83c15 100644 ---- a/compiler/main/DriverPipeline.hs -+++ b/compiler/main/DriverPipeline.hs -@@ -1916,5 +1916,5 @@ linkBinary' staticLink dflags o_files dep_packages = do - ++ pkg_framework_opts - ++ debug_opts - ++ thread_opts -- ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else []) -+ ++ (if (platformOS platform `elem` [OSDarwin, OSiOS]) then [ "-Wl,-dead_strip_dylibs", "-Wl,-dead_strip" ] else []) - )) - - exeFileName :: Bool -> DynFlags -> FilePath diff --git a/nix/patches/ghc/0001-Stop-the-linker-panic.patch b/nix/patches/ghc/0001-Stop-the-linker-panic.patch deleted file mode 100644 index 3fb9d9ac842..00000000000 --- a/nix/patches/ghc/0001-Stop-the-linker-panic.patch +++ /dev/null @@ -1,122 +0,0 @@ -From c010cc3a5ec03a0bfcae777bf37223b91f46d7d3 Mon Sep 17 00:00:00 2001 -From: Moritz Angermann -Date: Fri, 27 Jul 2018 10:23:57 +0800 -Subject: [PATCH] Stop the linker panic - -If we fail to initialize the liker properly, we still set the `initLinkerDone`. In fact we even set that prior to actually initializing the linker. However if the linker initialization fails, we the `Done` state is still true. As such we run into the `Dynamic Linker not initialised` error. Which while technically corret is confusing as it pulls the attation away from the real issue. - -This change puts the Done state into an MVar, and as such ensureing that all parallel access needs to wait for the linker to be actually initialized, or try to re-initilize if it fails. ---- - compiler/ghci/Linker.hs | 29 +++++++++++++++-------------- - compiler/utils/Panic.hs | 13 +++++++++++++ - 2 files changed, 28 insertions(+), 14 deletions(-) - -diff --git a/compiler/ghci/Linker.hs b/compiler/ghci/Linker.hs -index 150f2af4c7..20038f8101 100644 ---- a/compiler/ghci/Linker.hs -+++ b/compiler/ghci/Linker.hs -@@ -94,7 +94,7 @@ interpreted code only), for use during linking. - -} - #if STAGE < 2 - GLOBAL_VAR_M(v_PersistentLinkerState, newMVar (panic "Dynamic linker not initialised"), MVar PersistentLinkerState) --GLOBAL_VAR(v_InitLinkerDone, False, Bool) -- Set True when dynamic linker is initialised -+GLOBAL_VAR_M(v_InitLinkerDone, newMVar False, MVar Bool) -- Set True when dynamic linker is initialised - #else - SHARED_GLOBAL_VAR_M( v_PersistentLinkerState - , getOrSetLibHSghcPersistentLinkerState -@@ -102,11 +102,11 @@ SHARED_GLOBAL_VAR_M( v_PersistentLinkerState - , newMVar (panic "Dynamic linker not initialised") - , MVar PersistentLinkerState) - -- Set True when dynamic linker is initialised --SHARED_GLOBAL_VAR( v_InitLinkerDone -- , getOrSetLibHSghcInitLinkerDone -- , "getOrSetLibHSghcInitLinkerDone" -- , False -- , Bool) -+SHARED_GLOBAL_VAR_M( v_InitLinkerDone -+ , getOrSetLibHSghcInitLinkerDone -+ , "getOrSetLibHSghcInitLinkerDone" -+ , newMVar False -+ , MVar Bool) - #endif - - modifyPLS_ :: (PersistentLinkerState -> IO PersistentLinkerState) -> IO () -@@ -115,6 +115,9 @@ modifyPLS_ f = readIORef v_PersistentLinkerState >>= flip modifyMVar_ f - modifyPLS :: (PersistentLinkerState -> IO (PersistentLinkerState, a)) -> IO a - modifyPLS f = readIORef v_PersistentLinkerState >>= flip modifyMVar f - -+modifyILD :: (Bool -> IO (Bool, a)) -> IO a -+modifyILD f = readIORef v_InitLinkerDone >>= flip modifyMVar f -+ - data PersistentLinkerState - = PersistentLinkerState { - -@@ -289,10 +292,9 @@ showLinkerState dflags - initDynLinker :: HscEnv -> IO () - initDynLinker hsc_env = - modifyPLS_ $ \pls0 -> do -- done <- readIORef v_InitLinkerDone -- if done then return pls0 -- else do writeIORef v_InitLinkerDone True -- reallyInitDynLinker hsc_env -+ modifyILD $ \done -> do -+ if done then return (done, pls0) -+ else (True,) <$> reallyInitDynLinker hsc_env - - reallyInitDynLinker :: HscEnv -> IO PersistentLinkerState - reallyInitDynLinker hsc_env = do -@@ -1324,8 +1326,7 @@ load_dyn hsc_env dll = do - r <- loadDLL hsc_env dll - case r of - Nothing -> return () -- Just err -> throwGhcExceptionIO (CmdLineError ("can't load .so/.DLL for: " -- ++ dll ++ " (" ++ err ++ ")" )) -+ Just err -> cmdLineErrorIO ("can't load .so/.DLL for: " ++ dll ++ " (" ++ err ++ ")") - - loadFrameworks :: HscEnv -> Platform -> PackageConfig -> IO () - loadFrameworks hsc_env platform pkg -@@ -1337,8 +1338,8 @@ loadFrameworks hsc_env platform pkg - load fw = do r <- loadFramework hsc_env fw_dirs fw - case r of - Nothing -> return () -- Just err -> throwGhcExceptionIO (CmdLineError ("can't load framework: " -- ++ fw ++ " (" ++ err ++ ")" )) -+ Just err -> cmdLineErrorIO ("can't load framework: " -+ ++ fw ++ " (" ++ err ++ ")" ) - - -- Try to find an object file for a given library in the given paths. - -- If it isn't present, we assume that addDLL in the RTS can find it, -diff --git a/compiler/utils/Panic.hs b/compiler/utils/Panic.hs -index ebf830385c..0a91c39b35 100644 ---- a/compiler/utils/Panic.hs -+++ b/compiler/utils/Panic.hs -@@ -20,6 +20,8 @@ module Panic ( - panic, sorry, assertPanic, trace, - panicDoc, sorryDoc, pgmErrorDoc, - -+ cmdLineError, cmdLineErrorIO, -+ - Exception.Exception(..), showException, safeShowException, - try, tryMost, throwTo, - -@@ -195,6 +197,17 @@ panicDoc x doc = throwGhcException (PprPanic x doc) - sorryDoc x doc = throwGhcException (PprSorry x doc) - pgmErrorDoc x doc = throwGhcException (PprProgramError x doc) - -+cmdLineError :: String -> a -+cmdLineError = unsafeDupablePerformIO . cmdLineErrorIO -+ -+cmdLineErrorIO :: String -> IO a -+cmdLineErrorIO x = do -+ stack <- ccsToStrings =<< getCurrentCCS x -+ if null stack -+ then throwGhcException (CmdLineError x) -+ else throwGhcException (CmdLineError (x ++ '\n' : renderStack stack)) -+ -+ - - -- | Throw a failed assertion exception for a given filename and line number. - assertPanic :: String -> Int -> a --- -2.18.0 - diff --git a/nix/patches/ghc/Cabal2201-allow-test-wrapper.patch b/nix/patches/ghc/Cabal2201-allow-test-wrapper.patch deleted file mode 100644 index 06a7b5ff9ba..00000000000 --- a/nix/patches/ghc/Cabal2201-allow-test-wrapper.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/Distribution/Simple/Setup.hs b/Distribution/Simple/Setup.hs -index 5fa0e99..fc429b6 100644 ---- a/Distribution/Simple/Setup.hs -+++ b/Distribution/Simple/Setup.hs -@@ -1919,6 +1919,7 @@ data TestFlags = TestFlags { - testMachineLog :: Flag PathTemplate, - testShowDetails :: Flag TestShowDetails, - testKeepTix :: Flag Bool, -+ testWrapper :: Flag FilePath, - -- TODO: think about if/how options are passed to test exes - testOptions :: [PathTemplate] - } deriving (Generic) -@@ -1931,6 +1932,7 @@ defaultTestFlags = TestFlags { - testMachineLog = toFlag $ toPathTemplate $ "$pkgid.log", - testShowDetails = toFlag Failures, - testKeepTix = toFlag False, -+ testWrapper = NoFlag, - testOptions = [] - } - -@@ -1991,6 +1993,11 @@ testCommand = CommandUI - "keep .tix files for HPC between test runs" - testKeepTix (\v flags -> flags { testKeepTix = v}) - trueArg -+ , option [] ["test-wrapper"] -+ "Run test through a wrapper." -+ testWrapper (\v flags -> flags { testWrapper = v }) -+ (reqArg' "FILE" (toFlag :: FilePath -> Flag FilePath) -+ (pure . fromFlag :: Flag FilePath -> [FilePath])) - , option [] ["test-options"] - ("give extra options to test executables " - ++ "(name templates can use $pkgid, $compiler, " -diff --git a/Distribution/Simple/Test/ExeV10.hs b/Distribution/Simple/Test/ExeV10.hs -index 707ab74..87bfefe 100644 ---- a/Distribution/Simple/Test/ExeV10.hs -+++ b/Distribution/Simple/Test/ExeV10.hs -@@ -98,7 +98,12 @@ runTest pkg_descr lbi clbi flags suite = do - return (addLibraryPath os paths shellEnv) - else return shellEnv - -- exit <- rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv') -+ exit <- case testWrapper flags of -+ Flag path -> rawSystemIOWithEnv verbosity path (cmd:opts) Nothing (Just shellEnv') -+ -- these handles are automatically closed -+ Nothing (Just wOut) (Just wErr) -+ -+ NoFlag -> rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv') - -- these handles are automatically closed - Nothing (Just wOut) (Just wErr) - -diff --git a/Distribution/Simple/Test/LibV09.hs b/Distribution/Simple/Test/LibV09.hs -index 861e91a..66316fa 100644 ---- a/Distribution/Simple/Test/LibV09.hs -+++ b/Distribution/Simple/Test/LibV09.hs -@@ -99,9 +99,14 @@ runTest pkg_descr lbi clbi flags suite = do - cpath <- canonicalizePath $ LBI.componentBuildDir lbi clbi - return (addLibraryPath os (cpath : paths) shellEnv) - else return shellEnv -- createProcessWithEnv verbosity cmd opts Nothing (Just shellEnv') -- -- these handles are closed automatically -- CreatePipe (UseHandle wOut) (UseHandle wOut) -+ case testWrapper flags of -+ Flag path -> createProcessWithEnv verbosity path (cmd:opts) Nothing (Just shellEnv') -+ -- these handles are closed automatically -+ CreatePipe (UseHandle wOut) (UseHandle wOut) -+ -+ NoFlag -> createProcessWithEnv verbosity cmd opts Nothing (Just shellEnv') -+ -- these handles are closed automatically -+ CreatePipe (UseHandle wOut) (UseHandle wOut) - - hPutStr wIn $ show (tempLog, PD.testName suite) - hClose wIn diff --git a/nix/patches/ghc/Cabal2201-no-hackage-tests.patch b/nix/patches/ghc/Cabal2201-no-hackage-tests.patch deleted file mode 100644 index c8285f06993..00000000000 --- a/nix/patches/ghc/Cabal2201-no-hackage-tests.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/Cabal.cabal b/Cabal.cabal -index 2b680ca..7320b40 100644 ---- a/Cabal.cabal -+++ b/Cabal.cabal -@@ -568,9 +568,7 @@ test-suite hackage-tests - type: exitcode-stdio-1.0 - main-is: HackageTests.hs - -- -- TODO: need to get 01-index.tar on appveyor -- if os(windows) -- buildable: False -+ buildable: False - - hs-source-dirs: tests - diff --git a/nix/patches/ghc/MR95--ghc-pkg-deadlock-fix.patch b/nix/patches/ghc/MR95--ghc-pkg-deadlock-fix.patch deleted file mode 100644 index f05386ff9a7..00000000000 --- a/nix/patches/ghc/MR95--ghc-pkg-deadlock-fix.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/rts/posix/itimer/Pthread.c b/rts/posix/itimer/Pthread.c -index d8f2497e3f21bc23038c4fa871b1739104825d12..6f9cd8f4b3b94692ac9c4f7cb2462a242742408d 100644 ---- a/rts/posix/itimer/Pthread.c -+++ b/rts/posix/itimer/Pthread.c -@@ -134,12 +134,12 @@ static void *itimer_thread_func(void *_handle_tick) - - // first try a cheap test - if (stopped) { -- ACQUIRE_LOCK(&mutex); -+ OS_ACQUIRE_LOCK(&mutex); - // should we really stop? - if (stopped) { - waitCondition(&start_cond, &mutex); - } -- RELEASE_LOCK(&mutex); -+ OS_RELEASE_LOCK(&mutex); - } else { - handle_tick(0); - } -@@ -147,8 +147,6 @@ static void *itimer_thread_func(void *_handle_tick) - - if (USE_TIMERFD_FOR_ITIMER) - close(timerfd); -- closeMutex(&mutex); -- closeCondition(&start_cond); - return NULL; - } - -@@ -178,19 +176,19 @@ initTicker (Time interval, TickProc handle_tick) - void - startTicker(void) - { -- ACQUIRE_LOCK(&mutex); -+ OS_ACQUIRE_LOCK(&mutex); - stopped = 0; - signalCondition(&start_cond); -- RELEASE_LOCK(&mutex); -+ OS_RELEASE_LOCK(&mutex); - } - - /* There may be at most one additional tick fired after a call to this */ - void - stopTicker(void) - { -- ACQUIRE_LOCK(&mutex); -+ OS_ACQUIRE_LOCK(&mutex); - stopped = 1; -- RELEASE_LOCK(&mutex); -+ OS_RELEASE_LOCK(&mutex); - } - - /* There may be at most one additional tick fired after a call to this */ -@@ -207,6 +205,8 @@ exitTicker (bool wait) - if (pthread_join(thread, NULL)) { - sysErrorBelch("Itimer: Failed to join"); - } -+ closeMutex(&mutex); -+ closeCondition(&start_cond); - } else { - pthread_detach(thread); - } diff --git a/nix/patches/ghc/cabal-exe-ext-8.4.2.patch b/nix/patches/ghc/cabal-exe-ext-8.4.2.patch deleted file mode 100644 index 2f6ead4a460..00000000000 --- a/nix/patches/ghc/cabal-exe-ext-8.4.2.patch +++ /dev/null @@ -1,440 +0,0 @@ -Submodule libraries/Cabal cc9210818e..276922d3a8: -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Bench.hs b/libraries/Cabal/Cabal/Distribution/Simple/Bench.hs -index 775733f5f..3f720ffa0 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Bench.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Bench.hs -@@ -53,7 +53,7 @@ bench args pkg_descr lbi flags = do - doBench bm = - case PD.benchmarkInterface bm of - PD.BenchmarkExeV10 _ _ -> do -- let cmd = LBI.buildDir lbi name name <.> exeExtension -+ let cmd = LBI.buildDir lbi name name <.> exeExtension (LBI.hostPlatform lbi) - options = map (benchOption pkg_descr lbi bm) $ - benchmarkOptions flags - -- Check that the benchmark executable exists. -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Build.hs b/libraries/Cabal/Cabal/Distribution/Simple/Build.hs -index 252124355..90d441bc4 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Build.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Build.hs -@@ -569,7 +569,7 @@ addInternalBuildTools pkg lbi bi progs = - [ simpleConfiguredProgram toolName' (FoundOnSystem toolLocation) - | toolName <- getAllInternalToolDependencies pkg bi - , let toolName' = unUnqualComponentName toolName -- , let toolLocation = buildDir lbi toolName' toolName' <.> exeExtension ] -+ , let toolLocation = buildDir lbi toolName' toolName' <.> exeExtension (hostPlatform lbi) ] - - - -- TODO: build separate libs in separate dirs so that we can build -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/BuildPaths.hs b/libraries/Cabal/Cabal/Distribution/Simple/BuildPaths.hs -index c22b00b8e..d7aeabab1 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/BuildPaths.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/BuildPaths.hs -@@ -199,23 +199,23 @@ mkProfLibName lib = mkGenericStaticLibName (getHSLibraryName lib ++ "_p") - -- | Create a library name for a shared lirbary from a given name. - -- Prepends 'lib' and appends the '-' - -- as well as the shared library extension. --mkGenericSharedLibName :: CompilerId -> String -> String --mkGenericSharedLibName (CompilerId compilerFlavor compilerVersion) lib -- = mconcat [ "lib", lib, "-", comp <.> dllExtension ] -+mkGenericSharedLibName :: Platform -> CompilerId -> String -> String -+mkGenericSharedLibName platform (CompilerId compilerFlavor compilerVersion) lib -+ = mconcat [ "lib", lib, "-", comp <.> dllExtension platform ] - where comp = display compilerFlavor ++ display compilerVersion - - -- Implement proper name mangling for dynamical shared objects - -- libHS- - -- e.g. libHSbase-2.1-ghc6.6.1.so --mkSharedLibName :: CompilerId -> UnitId -> String --mkSharedLibName comp lib -- = mkGenericSharedLibName comp (getHSLibraryName lib) -+mkSharedLibName :: Platform -> CompilerId -> UnitId -> String -+mkSharedLibName platform comp lib -+ = mkGenericSharedLibName platform comp (getHSLibraryName lib) - - -- Static libs are named the same as shared libraries, only with - -- a different extension. --mkStaticLibName :: CompilerId -> UnitId -> String --mkStaticLibName (CompilerId compilerFlavor compilerVersion) lib -- = "lib" ++ getHSLibraryName lib ++ "-" ++ comp <.> staticLibExtension -+mkStaticLibName :: Platform -> CompilerId -> UnitId -> String -+mkStaticLibName platform (CompilerId compilerFlavor compilerVersion) lib -+ = "lib" ++ getHSLibraryName lib ++ "-" ++ comp <.> staticLibExtension platform - where comp = display compilerFlavor ++ display compilerVersion - - -- ------------------------------------------------------------ -@@ -224,8 +224,8 @@ mkStaticLibName (CompilerId compilerFlavor compilerVersion) lib - - -- | Default extension for executable files on the current platform. - -- (typically @\"\"@ on Unix and @\"exe\"@ on Windows or OS\/2) --exeExtension :: String --exeExtension = case buildOS of -+exeExtension :: Platform -> String -+exeExtension (Platform _arch os) = case os of - Windows -> "exe" - _ -> "" - -@@ -235,8 +235,8 @@ objExtension = "o" - - -- | Extension for dynamically linked (or shared) libraries - -- (typically @\"so\"@ on Unix and @\"dll\"@ on Windows) --dllExtension :: String --dllExtension = case buildOS of -+dllExtension :: Platform -> String -+dllExtension (Platform _arch os)= case os of - Windows -> "dll" - OSX -> "dylib" - _ -> "so" -@@ -245,7 +245,7 @@ dllExtension = case buildOS of - -- - -- TODO: Here, as well as in dllExtension, it's really the target OS that we're - -- interested in, not the build OS. --staticLibExtension :: String --staticLibExtension = case buildOS of -+staticLibExtension :: Platform -> String -+staticLibExtension (Platform _arch os) = case os of - Windows -> "lib" - _ -> "a" -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs b/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs -index 37a94ddc5..5fcefb470 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/GHC.hs -@@ -224,11 +224,11 @@ guessToolFromGhcPath tool ghcProg verbosity searchpath - versionSuffix path = takeVersionSuffix (dropExeExtension path) - given_suf = versionSuffix given_path - real_suf = versionSuffix real_path -- guessNormal dir = dir toolname <.> exeExtension -+ guessNormal dir = dir toolname <.> exeExtension buildPlatform - guessGhcVersioned dir suf = dir (toolname ++ "-ghc" ++ suf) -- <.> exeExtension -+ <.> exeExtension buildPlatform - guessVersioned dir suf = dir (toolname ++ suf) -- <.> exeExtension -+ <.> exeExtension buildPlatform - mkGuesses dir suf | null suf = [guessNormal dir] - | otherwise = [guessGhcVersioned dir suf, - guessVersioned dir suf, -@@ -731,11 +731,11 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do - compiler_id = compilerId (compiler lbi) - vanillaLibFilePath = libTargetDir mkLibName uid - profileLibFilePath = libTargetDir mkProfLibName uid -- sharedLibFilePath = libTargetDir mkSharedLibName compiler_id uid -- staticLibFilePath = libTargetDir mkStaticLibName compiler_id uid -+ sharedLibFilePath = libTargetDir mkSharedLibName (hostPlatform lbi) compiler_id uid -+ staticLibFilePath = libTargetDir mkStaticLibName (hostPlatform lbi) compiler_id uid - ghciLibFilePath = libTargetDir Internal.mkGHCiLibName uid - libInstallPath = libdir $ absoluteComponentInstallDirs pkg_descr lbi uid NoCopyDest -- sharedLibInstallPath = libInstallPath mkSharedLibName compiler_id uid -+ sharedLibInstallPath = libInstallPath mkSharedLibName (hostPlatform lbi) compiler_id uid - - stubObjs <- catMaybes <$> sequenceA - [ findFileWithExtension [objExtension] [libTargetDir] -@@ -932,13 +932,13 @@ gbuildName (GBuildFLib flib) = unUnqualComponentName $ foreignLibName flib - gbuildName (GReplFLib flib) = unUnqualComponentName $ foreignLibName flib - - gbuildTargetName :: LocalBuildInfo -> GBuildMode -> String --gbuildTargetName _lbi (GBuildExe exe) = exeTargetName exe --gbuildTargetName _lbi (GReplExe exe) = exeTargetName exe --gbuildTargetName lbi (GBuildFLib flib) = flibTargetName lbi flib --gbuildTargetName lbi (GReplFLib flib) = flibTargetName lbi flib -+gbuildTargetName lbi (GBuildExe exe) = exeTargetName (hostPlatform lbi) exe -+gbuildTargetName lbi (GReplExe exe) = exeTargetName (hostPlatform lbi) exe -+gbuildTargetName lbi (GBuildFLib flib) = flibTargetName lbi flib -+gbuildTargetName lbi (GReplFLib flib) = flibTargetName lbi flib - --exeTargetName :: Executable -> String --exeTargetName exe = unUnqualComponentName (exeName exe) `withExt` exeExtension -+exeTargetName :: Platform -> Executable -> String -+exeTargetName platform exe = unUnqualComponentName (exeName exe) `withExt` exeExtension platform - - -- | Target name for a foreign library (the actual file name) - -- -@@ -955,8 +955,8 @@ flibTargetName lbi flib = - (Windows, ForeignLibNativeShared) -> nm <.> "dll" - (Windows, ForeignLibNativeStatic) -> nm <.> "lib" - (Linux, ForeignLibNativeShared) -> "lib" ++ nm <.> versionedExt -- (_other, ForeignLibNativeShared) -> "lib" ++ nm <.> dllExtension -- (_other, ForeignLibNativeStatic) -> "lib" ++ nm <.> staticLibExtension -+ (_other, ForeignLibNativeShared) -> "lib" ++ nm <.> dllExtension (hostPlatform lbi) -+ (_other, ForeignLibNativeStatic) -> "lib" ++ nm <.> staticLibExtension (hostPlatform lbi) - (_any, ForeignLibTypeUnknown) -> cabalBug "unknown foreign lib type" - where - nm :: String -@@ -1639,15 +1639,15 @@ installExe verbosity lbi binDir buildPref - (progprefix, progsuffix) _pkg exe = do - createDirectoryIfMissingVerbose verbosity True binDir - let exeName' = unUnqualComponentName $ exeName exe -- exeFileName = exeTargetName exe -+ exeFileName = exeTargetName (hostPlatform lbi) exe - fixedExeBaseName = progprefix ++ exeName' ++ progsuffix - installBinary dest = do - installExecutableFile verbosity - (buildPref exeName' exeFileName) -- (dest <.> exeExtension) -+ (dest <.> exeExtension (hostPlatform lbi)) - when (stripExes lbi) $ - Strip.stripExe verbosity (hostPlatform lbi) (withPrograms lbi) -- (dest <.> exeExtension) -+ (dest <.> exeExtension (hostPlatform lbi)) - installBinary (binDir fixedExeBaseName) - - -- |Install foreign library for GHC. -@@ -1753,7 +1753,7 @@ installLib verbosity lbi targetDir dynlibTargetDir _builtDir _pkg lib clbi = do - uid = componentUnitId clbi - profileLibName = mkProfLibName uid - ghciLibName = Internal.mkGHCiLibName uid -- sharedLibName = (mkSharedLibName compiler_id) uid -+ sharedLibName = (mkSharedLibName (hostPlatform lbi) compiler_id) uid - - hasLib = not $ null (allLibModules lib clbi) - && null (cSources (libBuildInfo lib)) -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/GHCJS.hs b/libraries/Cabal/Cabal/Distribution/Simple/GHCJS.hs -index 831ead6d8..b342b8776 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/GHCJS.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/GHCJS.hs -@@ -150,12 +150,12 @@ guessToolFromGhcjsPath tool ghcjsProg verbosity searchpath - path = programPath ghcjsProg - dir = takeDirectory path - versionSuffix = takeVersionSuffix (dropExeExtension path) -- guessNormal = dir toolname <.> exeExtension -+ guessNormal = dir toolname <.> exeExtension buildPlatform - guessGhcjsVersioned = dir (toolname ++ "-ghcjs" ++ versionSuffix) -- <.> exeExtension -+ <.> exeExtension buildPlatform - guessGhcjs = dir (toolname ++ "-ghcjs") -- <.> exeExtension -- guessVersioned = dir (toolname ++ versionSuffix) <.> exeExtension -+ <.> exeExtension buildPlatform -+ guessVersioned = dir (toolname ++ versionSuffix) <.> exeExtension buildPlatform - guesses | null versionSuffix = [guessGhcjs, guessNormal] - | otherwise = [guessGhcjsVersioned, - guessGhcjs, -@@ -427,7 +427,7 @@ buildOrReplLib forRepl verbosity numJobs pkg_descr lbi lib clbi = do - compiler_id = compilerId (compiler lbi) - vanillaLibFilePath = libTargetDir mkLibName uid - profileLibFilePath = libTargetDir mkProfLibName uid -- sharedLibFilePath = libTargetDir mkSharedLibName compiler_id uid -+ sharedLibFilePath = libTargetDir mkSharedLibName (hostPlatform lbi) compiler_id uid - ghciLibFilePath = libTargetDir Internal.mkGHCiLibName uid - - hObjs <- Internal.getHaskellObjects implInfo lib lbi clbi -@@ -524,8 +524,8 @@ buildOrReplExe forRepl verbosity numJobs _pkg_descr lbi - let exeName'' = unUnqualComponentName exeName' - -- exeNameReal, the name that GHC really uses (with .exe on Windows) - let exeNameReal = exeName'' <.> -- (if takeExtension exeName'' /= ('.':exeExtension) -- then exeExtension -+ (if takeExtension exeName'' /= ('.':exeExtension buildPlatform) -+ then exeExtension buildPlatform - else "") - - let targetDir = (buildDir lbi) exeName'' -@@ -735,7 +735,7 @@ installLib verbosity lbi targetDir dynlibTargetDir builtDir _pkg lib clbi = do - vanillaLibName = mkLibName uid - profileLibName = mkProfLibName uid - ghciLibName = Internal.mkGHCiLibName uid -- sharedLibName = (mkSharedLibName compiler_id) uid -+ sharedLibName = (mkSharedLibName (hostPlatform lbi) compiler_id) uid - - hasLib = not $ null (allLibModules lib clbi) - && null (cSources (libBuildInfo lib)) -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/JHC.hs b/libraries/Cabal/Cabal/Distribution/Simple/JHC.hs -index ced5a92d1..52e072652 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/JHC.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/JHC.hs -@@ -44,7 +44,7 @@ import Distribution.Text - import System.FilePath ( () ) - import Distribution.Compat.ReadP - ( readP_to_S, string, skipSpaces ) --import Distribution.System ( Platform ) -+import Distribution.System ( Platform, buildPlatform ) - - import qualified Data.Map as Map ( empty ) - -@@ -189,7 +189,7 @@ installLib verb _lbi dest _dyn_dest build_dir pkg_descr _lib _clbi = do - installExe :: Verbosity -> FilePath -> FilePath -> (FilePath,FilePath) -> PackageDescription -> Executable -> IO () - installExe verb dest build_dir (progprefix,progsuffix) _ exe = do - let exe_name = display $ exeName exe -- src = exe_name exeExtension -- out = (progprefix ++ exe_name ++ progsuffix) exeExtension -+ src = exe_name exeExtension buildPlatform -+ out = (progprefix ++ exe_name ++ progsuffix) exeExtension buildPlatform - createDirectoryIfMissingVerbose verb True dest - installExecutableFile verb (build_dir src) (dest out) -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/LHC.hs b/libraries/Cabal/Cabal/Distribution/Simple/LHC.hs -index 1697d2d9f..98ed44f9d 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/LHC.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/LHC.hs -@@ -348,10 +348,10 @@ buildLib verbosity pkg_descr lbi lib clbi = do - let cObjs = map (`replaceExtension` objExtension) (cSources libBi) - cSharedObjs = map (`replaceExtension` ("dyn_" ++ objExtension)) (cSources libBi) - cid = compilerId (compiler lbi) -- vanillaLibFilePath = libTargetDir mkLibName lib_name -- profileLibFilePath = libTargetDir mkProfLibName lib_name -- sharedLibFilePath = libTargetDir mkSharedLibName cid lib_name -- ghciLibFilePath = libTargetDir mkGHCiLibName lib_name -+ vanillaLibFilePath = libTargetDir mkLibName lib_name -+ profileLibFilePath = libTargetDir mkProfLibName lib_name -+ sharedLibFilePath = libTargetDir mkSharedLibName (hostPlatform lbi) cid lib_name -+ ghciLibFilePath = libTargetDir mkGHCiLibName lib_name - - stubObjs <- fmap catMaybes $ sequenceA - [ findFileWithExtension [objExtension] [libTargetDir] -@@ -470,7 +470,7 @@ buildExe verbosity _pkg_descr lbi - - -- exeNameReal, the name that GHC really uses (with .exe on Windows) - let exeNameReal = exeName'' <.> -- (if null $ takeExtension exeName'' then exeExtension else "") -+ (if null $ takeExtension exeName'' then exeExtension buildPlatform else "") - - let targetDir = pref exeName'' - let exeDir = targetDir (exeName'' ++ "-tmp") -@@ -677,13 +677,13 @@ installExe :: Verbosity - -> IO () - installExe verbosity lbi binDir buildPref (progprefix, progsuffix) _pkg exe = do - createDirectoryIfMissingVerbose verbosity True binDir -- let exeFileName = unUnqualComponentName (exeName exe) <.> exeExtension -+ let exeFileName = unUnqualComponentName (exeName exe) <.> exeExtension (hostPlatform lbi) - fixedExeBaseName = progprefix ++ unUnqualComponentName (exeName exe) ++ progsuffix - installBinary dest = do - installExecutableFile verbosity - (buildPref unUnqualComponentName (exeName exe) exeFileName) -- (dest <.> exeExtension) -- stripExe verbosity lbi exeFileName (dest <.> exeExtension) -+ (dest <.> exeExtension (hostPlatform lbi)) -+ stripExe verbosity lbi exeFileName (dest <.> exeExtension (hostPlatform lbi)) - installBinary (binDir fixedExeBaseName) - - stripExe :: Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> IO () -@@ -735,10 +735,10 @@ installLib verbosity lbi targetDir dynlibTargetDir builtDir _pkg lib clbi = do - where - cid = compilerId (compiler lbi) - lib_name = componentUnitId clbi -- vanillaLibName = mkLibName lib_name -- profileLibName = mkProfLibName lib_name -- ghciLibName = mkGHCiLibName lib_name -- sharedLibName = mkSharedLibName cid lib_name -+ vanillaLibName = mkLibName lib_name -+ profileLibName = mkProfLibName lib_name -+ ghciLibName = mkGHCiLibName lib_name -+ sharedLibName = mkSharedLibName (hostPlatform lbi) cid lib_name - - hasLib = not $ null (allLibModules lib clbi) - && null (cSources (libBuildInfo lib)) -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs b/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -index 707ab74d5..3f814feae 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -@@ -50,7 +50,7 @@ runTest pkg_descr lbi clbi flags suite = do - existingEnv <- getEnvironment - - let cmd = LBI.buildDir lbi testName' -- testName' <.> exeExtension -+ testName' <.> exeExtension (LBI.hostPlatform lbi) - -- Check that the test executable exists. - exists <- doesFileExist cmd - unless exists $ die' verbosity $ "Error: Could not find test program \"" ++ cmd -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs b/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -index 861e91a17..b1d91c078 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -@@ -58,7 +58,7 @@ runTest pkg_descr lbi clbi flags suite = do - existingEnv <- getEnvironment - - let cmd = LBI.buildDir lbi stubName suite -- stubName suite <.> exeExtension -+ stubName suite <.> exeExtension (LBI.hostPlatform lbi) - -- Check that the test executable exists. - exists <- doesFileExist cmd - unless exists $ -diff --git a/libraries/Cabal/cabal-install/Distribution/Client/Install.hs b/libraries/Cabal/cabal-install/Distribution/Client/Install.hs -index b873c12b9..880f6d655 100644 ---- a/libraries/Cabal/cabal-install/Distribution/Client/Install.hs -+++ b/libraries/Cabal/cabal-install/Distribution/Client/Install.hs -@@ -162,7 +162,7 @@ import Distribution.Client.Utils - ( determineNumJobs, logDirChange, mergeBy, MergeResult(..) - , tryCanonicalizePath ) - import Distribution.System -- ( Platform, OS(Windows), buildOS ) -+ ( Platform, OS(Windows), buildOS, buildPlatform ) - import Distribution.Text - ( display ) - import Distribution.Verbosity as Verbosity -@@ -1593,7 +1593,7 @@ withWin32SelfUpgrade verbosity uid configFlags cinfo platform pkg action = do - (CompilerId compFlavor _) = compilerInfoId cinfo - - exeInstallPaths defaultDirs = -- [ InstallDirs.bindir absoluteDirs exeName <.> exeExtension -+ [ InstallDirs.bindir absoluteDirs exeName <.> exeExtension buildPlatform - | exe <- PackageDescription.executables pkg - , PackageDescription.buildable (PackageDescription.buildInfo exe) - , let exeName = prefix ++ display (PackageDescription.exeName exe) ++ suffix -diff --git a/libraries/Cabal/cabal-install/Distribution/Client/Run.hs b/libraries/Cabal/cabal-install/Distribution/Client/Run.hs -index 027907484..d3b55c275 100644 ---- a/libraries/Cabal/cabal-install/Distribution/Client/Run.hs -+++ b/libraries/Cabal/cabal-install/Distribution/Client/Run.hs -@@ -125,7 +125,7 @@ run verbosity lbi exe exeArgs = do - return (cmd, cmdArgs ++ [script']) - _ -> do - p <- tryCanonicalizePath $ -- buildPref exeName' (exeName' <.> exeExtension) -+ buildPref exeName' (exeName' <.> exeExtension (hostPlatform lbi)) - return (p, []) - - env <- (dataDirEnvVar:) <$> getEnvironment -diff --git a/libraries/Cabal/cabal-install/Distribution/Client/SetupWrapper.hs b/libraries/Cabal/cabal-install/Distribution/Client/SetupWrapper.hs -index ee845d7dc..08ebe324f 100644 ---- a/libraries/Cabal/cabal-install/Distribution/Client/SetupWrapper.hs -+++ b/libraries/Cabal/cabal-install/Distribution/Client/SetupWrapper.hs -@@ -537,7 +537,7 @@ externalSetupMethod path verbosity options _ args = do - doInvoke - - moveOutOfTheWay tmpDir path' = do -- let newPath = tmpDir "setup" <.> exeExtension -+ let newPath = tmpDir "setup" <.> exeExtension buildPlatform - Win32.moveFile path' newPath - return newPath - -@@ -589,7 +589,7 @@ getExternalSetupMethod verbosity options pkg bt = do - setupDir = workingDir options useDistPref options "setup" - setupVersionFile = setupDir "setup" <.> "version" - setupHs = setupDir "setup" <.> "hs" -- setupProgFile = setupDir "setup" <.> exeExtension -+ setupProgFile = setupDir "setup" <.> exeExtension buildPlatform - platform = fromMaybe buildPlatform (usePlatform options) - - useCachedSetupExecutable = (bt == Simple || bt == Configure || bt == Make) -@@ -782,7 +782,7 @@ getExternalSetupMethod verbosity options pkg bt = do - ++ cabalVersionString ++ "-" - ++ platformString ++ "-" - ++ compilerVersionString) -- <.> exeExtension -+ <.> exeExtension buildPlatform - return (setupCacheDir, cachedSetupProgFile) - where - buildTypeString = show bt -diff --git a/libraries/Cabal/cabal-testsuite/PackageTests/InternalLibraries/Executable/setup-static.test.hs b/libraries/Cabal/cabal-testsuite/PackageTests/InternalLibraries/Executable/setup-static.test.hs -index 34fec34f3..f3e9d1979 100644 ---- a/libraries/Cabal/cabal-testsuite/PackageTests/InternalLibraries/Executable/setup-static.test.hs -+++ b/libraries/Cabal/cabal-testsuite/PackageTests/InternalLibraries/Executable/setup-static.test.hs -@@ -1,6 +1,7 @@ - import Test.Cabal.Prelude - import Control.Monad.IO.Class - import Control.Monad -+import Distribution.System (buildPlatform) - import Distribution.Package - import Distribution.Simple.Configure - import Distribution.Simple.BuildPaths -@@ -41,11 +42,11 @@ main = setupAndCabalTest $ do - then - assertBool "dynamic library MUST be installed" - =<< liftIO (doesFileExist (dyndir mkSharedLibName -- compiler_id uid)) -+ buildPlatform compiler_id uid)) - else - assertBool "dynamic library should be installed" - =<< liftIO (doesFileExist (dyndir mkSharedLibName -- compiler_id uid)) -+ buildPlatform compiler_id uid)) - fails $ ghcPkg "describe" ["foo"] - -- clean away the dist directory so that we catch accidental - -- dependence on the inplace files diff --git a/nix/patches/ghc/dll-loader-8.4.2.patch b/nix/patches/ghc/dll-loader-8.4.2.patch deleted file mode 100644 index f267825bfa9..00000000000 --- a/nix/patches/ghc/dll-loader-8.4.2.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c -index 3dcf8c4281..a1474b57bd 100644 ---- a/rts/linker/PEi386.c -+++ b/rts/linker/PEi386.c -@@ -221,10 +221,12 @@ static IndirectAddr* indirects = NULL; - /* Adds a DLL instance to the list of DLLs in which to search for symbols. */ - static void addDLLHandle(pathchar* dll_name, HINSTANCE instance) { - -+ IF_DEBUG(linker, debugBelch("addDLLHandle(%" PATH_FMT ")...\n", dll_name)); - /* At this point, we actually know what was loaded. - So bail out if it's already been loaded. */ - if (checkIfDllLoaded(instance)) - { -+ IF_DEBUG(linker, debugBelch("already loaded: addDLLHandle(%" PATH_FMT ")\n", dll_name)); - return; - } - -@@ -259,7 +261,7 @@ static void addDLLHandle(pathchar* dll_name, HINSTANCE instance) { - do { - pathchar* module = mkPath((char*)(BYTE *)instance + imports->Name); - HINSTANCE module_instance = GetModuleHandleW(module); -- if (0 != wcsncmp(module, ms_dll, len) -+ if ((true || 0 != wcsncmp(module, ms_dll, len)) - && module_instance - && !checkIfDllLoaded(module_instance)) - { -@@ -270,6 +272,7 @@ static void addDLLHandle(pathchar* dll_name, HINSTANCE instance) { - stgFree(module); - imports++; - } while (imports->Name); -+ IF_DEBUG(linker, debugBelch("done: addDLLHandle(%" PATH_FMT ")\n", dll_name)); - } - - static OpenedDLL* findLoadedDll(HINSTANCE instance) diff --git a/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch b/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch deleted file mode 100644 index 89e89367147..00000000000 --- a/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs -index acd0d61..3e83c15 100644 ---- a/compiler/main/DriverPipeline.hs -+++ b/compiler/main/DriverPipeline.hs -@@ -1916,5 +1916,5 @@ linkBinary' staticLink dflags o_files dep_packages = do - ++ pkg_framework_opts - ++ debug_opts - ++ thread_opts -- ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else []) -+ ++ (if (platformOS platform `elem` [OSDarwin, OSiOS]) then [ "-Wl,-dead_strip_dylibs", "-Wl,-dead_strip" ] else []) - )) - - exeFileName :: Bool -> DynFlags -> FilePath diff --git a/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch~ b/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch~ deleted file mode 100644 index 94a87f74c47..00000000000 --- a/nix/patches/ghc/ghc-8.0.2-darwin-rec-link.patch~ +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs -index acd0d61..3e83c15 100644 ---- a/compiler/main/DriverPipeline.hs -+++ b/compiler/main/DriverPipeline.hs -@@ -1916,5 +1916,5 @@ linkBinary' staticLink dflags o_files dep_packages = do - ++ pkg_framework_opts - ++ debug_opts - ++ thread_opts -- ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else []) -+ ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs", "-Wl,-dead_strip" ] else []) - )) - - exeFileName :: Bool -> DynFlags -> FilePath diff --git a/nix/patches/ghc/ghc-8.4.3-Cabal2201-SMP-test-fix.patch b/nix/patches/ghc/ghc-8.4.3-Cabal2201-SMP-test-fix.patch deleted file mode 100644 index fe7f07731fb..00000000000 --- a/nix/patches/ghc/ghc-8.4.3-Cabal2201-SMP-test-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libraries/Cabal/Cabal/tests/HackageTests.hs b/libraries/Cabal/Cabal/tests/HackageTests.hs -index 3b32147..d3e2f31 100644 ---- a/libraries/Cabal/Cabal/tests/HackageTests.hs -+++ b/libraries/Cabal/Cabal/tests/HackageTests.hs -@@ -89,6 +89,8 @@ readFieldTest fpath bsl = case Parsec.readFields $ bslToStrict bsl of - -- | Map with unionWith monoid - newtype M k v = M (Map.Map k v) - deriving (Show) -+instance (Ord k, Semigroup v) => Semigroup (M k v) where -+ M a <> M b = M (Map.unionWith (<>) a b) - instance (Ord k, Monoid v) => Monoid (M k v) where - mempty = M Map.empty - mappend (M a) (M b) = M (Map.unionWith mappend a b) diff --git a/nix/patches/ghc/ghc-8.4.3-Cabal2201-allow-test-wrapper.patch b/nix/patches/ghc/ghc-8.4.3-Cabal2201-allow-test-wrapper.patch deleted file mode 100644 index fbf672c95d2..00000000000 --- a/nix/patches/ghc/ghc-8.4.3-Cabal2201-allow-test-wrapper.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs b/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs -index 5fa0e99..fc429b6 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Setup.hs -@@ -1919,6 +1919,7 @@ data TestFlags = TestFlags { - testMachineLog :: Flag PathTemplate, - testShowDetails :: Flag TestShowDetails, - testKeepTix :: Flag Bool, -+ testWrapper :: Flag FilePath, - -- TODO: think about if/how options are passed to test exes - testOptions :: [PathTemplate] - } deriving (Generic) -@@ -1931,6 +1932,7 @@ defaultTestFlags = TestFlags { - testMachineLog = toFlag $ toPathTemplate $ "$pkgid.log", - testShowDetails = toFlag Failures, - testKeepTix = toFlag False, -+ testWrapper = NoFlag, - testOptions = [] - } - -@@ -1991,6 +1993,11 @@ testCommand = CommandUI - "keep .tix files for HPC between test runs" - testKeepTix (\v flags -> flags { testKeepTix = v}) - trueArg -+ , option [] ["test-wrapper"] -+ "Run test through a wrapper." -+ testWrapper (\v flags -> flags { testWrapper = v }) -+ (reqArg' "FILE" (toFlag :: FilePath -> Flag FilePath) -+ (pure . fromFlag :: Flag FilePath -> [FilePath])) - , option [] ["test-options"] - ("give extra options to test executables " - ++ "(name templates can use $pkgid, $compiler, " -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs b/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -index 707ab74..87bfefe 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs -@@ -98,7 +98,12 @@ runTest pkg_descr lbi clbi flags suite = do - return (addLibraryPath os paths shellEnv) - else return shellEnv - -- exit <- rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv') -+ exit <- case testWrapper flags of -+ Flag path -> rawSystemIOWithEnv verbosity path (cmd:opts) Nothing (Just shellEnv') -+ -- these handles are automatically closed -+ Nothing (Just wOut) (Just wErr) -+ -+ NoFlag -> rawSystemIOWithEnv verbosity cmd opts Nothing (Just shellEnv') - -- these handles are automatically closed - Nothing (Just wOut) (Just wErr) - -diff --git a/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs b/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -index 861e91a..66316fa 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs -@@ -99,9 +99,14 @@ runTest pkg_descr lbi clbi flags suite = do - cpath <- canonicalizePath $ LBI.componentBuildDir lbi clbi - return (addLibraryPath os (cpath : paths) shellEnv) - else return shellEnv -- createProcessWithEnv verbosity cmd opts Nothing (Just shellEnv') -- -- these handles are closed automatically -- CreatePipe (UseHandle wOut) (UseHandle wOut) -+ case testWrapper flags of -+ Flag path -> createProcessWithEnv verbosity path (cmd:opts) Nothing (Just shellEnv') -+ -- these handles are closed automatically -+ CreatePipe (UseHandle wOut) (UseHandle wOut) -+ -+ NoFlag -> createProcessWithEnv verbosity cmd opts Nothing (Just shellEnv') -+ -- these handles are closed automatically -+ CreatePipe (UseHandle wOut) (UseHandle wOut) - - hPutStr wIn $ show (tempLog, PD.testName suite) - hClose wIn diff --git a/nix/patches/ghc/ghc-8.4.3-Cabal2201-no-hackage-tests.patch b/nix/patches/ghc/ghc-8.4.3-Cabal2201-no-hackage-tests.patch deleted file mode 100644 index 657606ef6d7..00000000000 --- a/nix/patches/ghc/ghc-8.4.3-Cabal2201-no-hackage-tests.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/libraries/Cabal/Cabal/Cabal.cabal b/libraries/Cabal/Cabal/Cabal.cabal -index 2b680ca..7320b40 100644 ---- a/libraries/Cabal/Cabal/Cabal.cabal -+++ b/libraries/Cabal/Cabal/Cabal.cabal -@@ -568,9 +568,7 @@ test-suite hackage-tests - type: exitcode-stdio-1.0 - main-is: HackageTests.hs - -- -- TODO: need to get 01-index.tar on appveyor -- if os(windows) -- buildable: False -+ buildable: False - - hs-source-dirs: tests - diff --git a/nix/patches/ghc/ghc-8.4.3-Cabal2201-response-file-support.patch b/nix/patches/ghc/ghc-8.4.3-Cabal2201-response-file-support.patch deleted file mode 100644 index 10631db3b9c..00000000000 --- a/nix/patches/ghc/ghc-8.4.3-Cabal2201-response-file-support.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/libraries/Cabal/Cabal/Distribution/Simple.hs b/libraries/Cabal/Cabal/Distribution/Simple.hs -index e45c831..19e553e 100644 ---- a/libraries/Cabal/Cabal/Distribution/Simple.hs -+++ b/libraries/Cabal/Cabal/Distribution/Simple.hs -@@ -1,6 +1,6 @@ - {-# LANGUAGE FlexibleContexts #-} - {-# LANGUAGE RankNTypes #-} -- -+{-# LANGUAGE LambdaCase #-} - ----------------------------------------------------------------------------- - -- | - -- Module : Distribution.Simple -@@ -57,7 +57,7 @@ module Distribution.Simple ( - defaultHookedPackageDesc - ) where - --import Prelude () -+import Prelude (mapM) - import Control.Exception (try) - import Distribution.Compat.Prelude - -@@ -108,6 +108,10 @@ import Data.List (unionBy, (\\)) - - import Distribution.PackageDescription.Parsec - -+-- | Monadic version of concatMap -+concatMapM :: Monad m => (a -> m [b]) -> [a] -> m [b] -+concatMapM f xs = liftM concat (mapM f xs) -+ - -- | A simple implementation of @main@ for a Cabal setup script. - -- It reads the package description file using IO, and performs the - -- action specified on the command line. -@@ -148,8 +152,9 @@ defaultMainWithHooksNoReadArgs hooks pkg_descr = - defaultMainHelper hooks { readDesc = return (Just pkg_descr) } - - defaultMainHelper :: UserHooks -> Args -> IO () --defaultMainHelper hooks args = topHandler $ -- case commandsRun (globalCommand commands) commands args of -+defaultMainHelper hooks args = topHandler $ do -+ args' <- expandResponseFiles args -+ case commandsRun (globalCommand commands) commands args' of - CommandHelp help -> printHelp help - CommandList opts -> printOptionsList opts - CommandErrors errs -> printErrors errs -@@ -163,6 +168,14 @@ defaultMainHelper hooks args = topHandler $ - CommandReadyToGo action -> action - - where -+ expandResponseFiles :: [String] -> IO [String] -+ expandResponseFiles = concatMapM expandResponseFile -+ expandResponseFile :: String -> IO [String] -+ expandResponseFile arg@('@':file) = doesFileExist file >>= \case -+ True -> concatMap words . lines <$> readFile file -+ False -> pure [arg] -+ expandResponseFile arg = pure [arg] -+ - printHelp help = getProgName >>= putStr . help - printOptionsList = putStr . unlines - printErrors errs = do diff --git a/nix/patches/ghc/ghc-8.4.4-darwin-rec-link.patch b/nix/patches/ghc/ghc-8.4.4-darwin-rec-link.patch deleted file mode 100644 index 94a87f74c47..00000000000 --- a/nix/patches/ghc/ghc-8.4.4-darwin-rec-link.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs -index acd0d61..3e83c15 100644 ---- a/compiler/main/DriverPipeline.hs -+++ b/compiler/main/DriverPipeline.hs -@@ -1916,5 +1916,5 @@ linkBinary' staticLink dflags o_files dep_packages = do - ++ pkg_framework_opts - ++ debug_opts - ++ thread_opts -- ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else []) -+ ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs", "-Wl,-dead_strip" ] else []) - )) - - exeFileName :: Bool -> DynFlags -> FilePath diff --git a/nix/patches/ghc/hsc2hs-8.4.2.patch b/nix/patches/ghc/hsc2hs-8.4.2.patch deleted file mode 100644 index 521b0e7dfd8..00000000000 --- a/nix/patches/ghc/hsc2hs-8.4.2.patch +++ /dev/null @@ -1,1197 +0,0 @@ -diff --git a/mk/config.mk.in b/mk/config.mk.in -index e5ec04a195..26b07f3159 100644 ---- a/mk/config.mk.in -+++ b/mk/config.mk.in -@@ -649,8 +649,12 @@ $(eval $(call set_stage_HSC2HS_OPTS,0)) - $(eval $(call set_stage_HSC2HS_OPTS,1)) - $(eval $(call set_stage_HSC2HS_OPTS,2)) - ifeq "$(CrossCompiling)" "YES" --SRC_HSC2HS_OPTS_STAGE1 += --cross-compile --SRC_HSC2HS_OPTS_STAGE2 += --cross-compile -+# We'll assume we compile with gcc or clang, and both support `-S` and can as such use the -+# --via-asm pass, which should be faster and is required for cross compiling to windows, as -+# the c compiler complains about non-constant expressions even though they are constant and -+# end up as constants in the assembly. -+SRC_HSC2HS_OPTS_STAGE1 += --cross-compile --via-asm -+SRC_HSC2HS_OPTS_STAGE2 += --cross-compile --via-asm - endif - SRC_HSC2HS_OPTS_STAGE0 += --cflag=-D$(HostArch_CPP)_HOST_ARCH --cflag=-D$(HostOS_CPP)_HOST_OS - SRC_HSC2HS_OPTS_STAGE1 += --cflag=-D$(TargetArch_CPP)_HOST_ARCH --cflag=-D$(TargetOS_CPP)_HOST_OS -Submodule utils/hsc2hs 16ee80ad2d...36769c3abd: -diff --git a/utils/hsc2hs/.travis.yml b/utils/hsc2hs/.travis.yml -index 40a132c..ac0b535 100644 ---- a/utils/hsc2hs/.travis.yml -+++ b/utils/hsc2hs/.travis.yml -@@ -1,6 +1,6 @@ - # This Travis job script has been generated by a script via - # --# make_travis_yml_2.hs 'hsc2hs.cabal' -+# runghc make_travis_yml_2.hs '-o' '.travis.yml' 'cabal.project' - # - # For more information, see https://github.com/hvr/multi-ghc-travis - # -@@ -24,14 +24,17 @@ before_cache: - - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar - - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx - -+ - rm -rfv $HOME/.cabal/packages/head.hackage -+ - matrix: - include: - - compiler: "ghc-7.0.4" -- env: INSTALLED=false -- # env: TEST=--disable-tests BENCH=--disable-benchmarks -+ # can't build the testsuites dependencies with 7.0 -+ env: INSTALLED=false TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.0.4], sources: [hvr-ghc]}} - - compiler: "ghc-7.2.2" -- # env: TEST=--disable-tests BENCH=--disable-benchmarks -+ # can't build the testsuites dependencies with 7.2 -+ env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-7.2.2], sources: [hvr-ghc]}} - - compiler: "ghc-7.4.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks -@@ -48,59 +51,89 @@ matrix: - - compiler: "ghc-8.0.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks - addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}} -- - compiler: "ghc-8.2.1" -+ - compiler: "ghc-8.2.2" -+ # env: TEST=--disable-tests BENCH=--disable-benchmarks -+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.2], sources: [hvr-ghc]}} -+ - compiler: "ghc-8.4.2" - # env: TEST=--disable-tests BENCH=--disable-benchmarks -- addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.1], sources: [hvr-ghc]}} -+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.4.2], sources: [hvr-ghc]}} -+ - compiler: "ghc-head" -+ env: GHCHEAD=true -+ addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], sources: [hvr-ghc]}} -+ -+ allow_failures: -+ - compiler: "ghc-head" - - before_install: -- - HC=${CC} -- - HCPKG=${HC/ghc/ghc-pkg} -- - unset CC -- - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH -- - PKGNAME='hsc2hs' -+ - HC=${CC} -+ - HCPKG=${HC/ghc/ghc-pkg} -+ - unset CC -+ - ROOTDIR=$(pwd) -+ - mkdir -p $HOME/.local/bin -+ - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH" -+ - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') )) -+ - echo $HCNUMVER - - install: -- - cabal --version -- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" -- - BENCH=${BENCH---enable-benchmarks} -- - TEST=${TEST---enable-tests} -- - HADDOCK=${HADDOCK-true} -- - INSTALLED=${INSTALLED-true} -- - travis_retry cabal update -v -- - sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config -- - rm -fv cabal.project.local -- - "echo 'packages: .' > cabal.project" -- - rm -f cabal.project.freeze -- - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all -- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all -+ - cabal --version -+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]" -+ - BENCH=${BENCH---enable-benchmarks} -+ - TEST=${TEST---enable-tests} -+ - HADDOCK=${HADDOCK-true} -+ - INSTALLED=${INSTALLED-true} -+ - GHCHEAD=${GHCHEAD-false} -+ - travis_retry cabal update -v -+ - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config" -+ - rm -fv cabal.project cabal.project.local -+ # Overlay Hackage Package Index for GHC HEAD: https://github.com/hvr/head.hackage -+ - | -+ if $GHCHEAD; then -+ sed -i.bak 's/-- allow-newer:.*/allow-newer: *:base, *:template-haskell, *:ghc, *:Cabal/' ${HOME}/.cabal/config -+ -+ echo 'repository head.hackage' >> ${HOME}/.cabal/config -+ echo ' url: http://head.hackage.haskell.org/' >> ${HOME}/.cabal/config -+ echo ' secure: True' >> ${HOME}/.cabal/config -+ echo ' root-keys: 07c59cb65787dedfaef5bd5f987ceb5f7e5ebf88b904bbd4c5cbdeb2ff71b740' >> ${HOME}/.cabal/config -+ echo ' 2e8555dde16ebd8df076f1a8ef13b8f14c66bad8eafefd7d9e37d0ed711821fb' >> ${HOME}/.cabal/config -+ echo ' 8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> ${HOME}/.cabal/config -+ echo ' key-threshold: 3' >> ${HOME}/.cabal.config -+ -+ cabal new-update head.hackage -v -+ fi -+ - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$' -+ - "printf 'packages: \".\"\\n' > cabal.project" -+ - cat cabal.project -+ - if [ -f "./configure.ac" ]; then -+ (cd "." && autoreconf -i); -+ fi -+ - rm -f cabal.project.freeze -+ - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all -+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all -+ - rm -rf .ghc.environment.* "."/dist -+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX) - - # Here starts the actual work to be performed for the package under test; - # any command which exits with a non-zero exit code causes the build to fail. - script: -- - if [ -f configure.ac ]; then autoreconf -i; fi -- - rm -rf .ghc.environment.* dist/ -- - cabal sdist # test that a source-distribution can be generated -- - cd dist/ -- - SRCTAR=(${PKGNAME}-*.tar.gz) -- - SRC_BASENAME="${SRCTAR/%.tar.gz}" -- - tar -xvf "./$SRC_BASENAME.tar.gz" -- - cd "$SRC_BASENAME/" --## from here on, CWD is inside the extracted source-tarball -- - rm -fv cabal.project.local -- - "echo 'packages: .' > cabal.project" -- # this builds all libraries and executables (without tests/benchmarks) -- - rm -f cabal.project.freeze -- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all -- # this builds all libraries and executables (including tests/benchmarks) -- # - rm -rf ./dist-newstyle -+ # test that source-distributions can be generated -+ - (cd "." && cabal sdist) -+ - mv "."/dist/hsc2hs-*.tar.gz ${DISTDIR}/ -+ - cd ${DISTDIR} || false -+ - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \; -+ - "printf 'packages: hsc2hs-*/*.cabal\\n' > cabal.project" -+ - cat cabal.project -+ # this builds all libraries and executables (without tests/benchmarks) -+ - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all -+ -+ # Build with installed constraints for packages in global-db -+ - if $INSTALLED; then echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh; else echo "Not building with installed constraints"; fi - -- # Build with installed constraints for packages in global-db -- - if $INSTALLED; then -- echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh; -- else echo "Not building with installed constraints"; fi -+ # build & run tests, build benchmarks -+ - cabal new-build -w ${HC} ${TEST} ${BENCH} all -+ - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi - -- # build & run tests, build benchmarks -- - cabal new-build -w ${HC} ${TEST} ${BENCH} all -+ # cabal check -+ - (cd hsc2hs-* && cabal check) - --# REGENDATA ["hsc2hs.cabal"] -+# REGENDATA ["-o",".travis.yml","cabal.project"] - # EOF -diff --git a/utils/hsc2hs/ATTParser.hs b/utils/hsc2hs/ATTParser.hs -new file mode 100644 -index 0000000..93d332e ---- /dev/null -+++ b/utils/hsc2hs/ATTParser.hs -@@ -0,0 +1,122 @@ -+-- A rather crude asm parser. -+-- -+-- -+-- we only handle a subset of AT&T assembly -+-- right now. This is what gcc and clang can -+-- emit. For clang using llvm-ir might be -+-- even better. For gcc gimple if that can -+-- be consumed reliably somehow. -+-- -+-- For now we'll rely on the at&t assembly -+-- to be sufficient for constants. -+-- -+ -+ -+module ATTParser where -+ -+import Control.Applicative ((<|>)) -+import Data.Word (Word32, Word64) -+import Data.Int (Int64) -+import Data.Char (isDigit, isSpace) -+import Data.Bits (shiftL, shiftR, (.|.)) -+import Data.Maybe (fromMaybe) -+ -+data Inst = Ident String -+ | Long Word32 -+ | Quad Word64 -+ | Ref String -+ | Ascii String -+ deriving Show -+ -+type ASM = [(String, Inst)] -+ -+isIdent :: Inst -> Bool -+isIdent (Ident _) = True -+isIdent _ = False -+ -+trim :: String -> String -+trim = reverse . dropWhile (`elem` " \t") . reverse . dropWhile (`elem` " \t") -+-- | generalized @words@. -+words' :: (a -> Bool) -> [a] -> [[a]] -+words' p s = case dropWhile p s of -+ [] -> [] -+ s' -> w : words' p s'' -+ where (w, s'') = break p s' -+ -+isNumber :: String -> Bool -+isNumber ('-':x) = all isDigit x -+isNumber ('+':x) = all isDigit x -+isNumber x = all isDigit x -+ -+-- | process the assembly instructions, filtering out -+-- identifiers and constant values. -+preprocess :: String -> [Inst] -+preprocess [] = [] -+preprocess ('\t':attr) = let (h, t) = break isSpace attr -+ in case h:words' (=='\t') t of -+ (".quad":x:_) | isNumber (w x) -> [Quad $ read (w x)] -+ | otherwise -> [Ref $ (w x)] -+ (".xword":x:_)| isNumber (w x) -> [Quad $ read (w x)] -+ | otherwise -> [Ref $ (w x)] -+ (".long":x:_) | isNumber (w x) -> [Long $ read (w x)] -+ | otherwise -> [Ref $ (w x)] -+ (".space":x:_)| (w x) == "4" -> [Long 0] -+ | (w x) == "8" -> [Quad 0] -+ (".ascii":x:_) -> [Ascii $ read x] -+ (".asciz":x:_) -> [Ascii $ read x ++ "\0"] -+ _ -> [] -+ where w = head . words -+preprocess ('.':'z':'e':'r':'o':'f':'i':'l':'l':' ':x) = case words' (==',') x of -+ (_seg:_sect:sym:size:_) | size == "4" -> [Ident sym, Long 0] -+ | size == "8" -> [Ident sym, Quad 0] -+ _ -> [] -+preprocess (c:cs) | not (isSpace c) = [Ident $ takeWhile (/= ':') (c:cs)] -+ | otherwise = [] -+ -+-- | turn the list of instructions into an associated list -+parseInsts :: [Inst] -> [(String, Inst)] -+parseInsts [] = [] -+parseInsts (Ident name:xs) = case break isIdent xs of -+ ([], xs') -> parseInsts xs' -+ (is, xs') -> (name, combineInst is):parseInsts xs' -+parseInsts _ = error "Invalid instructions" -+ -+-- | combine instructions (e.g. two long into a quad) -+combineInst :: [Inst] -> Inst -+combineInst [Quad i] = Quad i -+combineInst [Long i] = Quad (fromIntegral i) -+combineInst [Long h, Long l] = Quad $ (shiftL (fromIntegral h) 32) .|. fromIntegral l -+combineInst [Ref s] = Ref s -+combineInst [Ascii s] = Ascii s -+combineInst is = error $ "Cannot combine instructions: " ++ show is -+ -+-- | inline references -+inlineRef :: [(String, Inst)] -> [(String, Inst)] -+inlineRef xs = map go xs -+ where go (k, Ref name) = (k, fromMaybe (error $ "failed to find reference " ++ show name) $ lookup name xs) -+ go x = x -+ -+fixWordOrder :: [(String, Inst)] -> [(String, Inst)] -+fixWordOrder xs = case lookupInteger "___hsc2hs_BOM___" xs of -+ Just 1 -> map go xs -+ _ -> xs -+ where go (k, Quad w) = (k, Quad $ shiftL w 32 .|. shiftR w 32) -+ go x = x -+ -+parse :: FilePath -> IO [(String, Inst)] -+parse f = (fixWordOrder . inlineRef . parseInsts . concatMap preprocess . lines) `fmap` readFile f -+ -+-- | lookup a symbol without or with underscore prefix -+lookup_ :: String -> [(String,b)] -> Maybe b -+lookup_ k l = lookup k l <|> lookup ("_" ++ k) l -+ -+lookupString :: String -> [(String, Inst)] -> Maybe String -+lookupString k l = case (lookup_ k l) of -+ Just (Ascii s) -> Just s -+ _ -> Nothing -+ -+lookupInteger :: String -> [(String, Inst)] -> Maybe Integer -+lookupInteger k l = case (lookup_ k l, lookup_ (k ++ "___hsc2hs_sign___") l) of -+ (Just (Quad i), Just (Quad 1)) -> Just (fromIntegral (fromIntegral i :: Int64)) -+ (Just (Quad i), _) -> Just (fromIntegral i) -+ _ -> Nothing -diff --git a/utils/hsc2hs/CrossCodegen.hs b/utils/hsc2hs/CrossCodegen.hs -index 1312b91..93f1e18 100644 ---- a/utils/hsc2hs/CrossCodegen.hs -+++ b/utils/hsc2hs/CrossCodegen.hs -@@ -40,6 +40,8 @@ import Common - import Flags - import HSCParser - -+import qualified ATTParser as ATT -+ - -- A monad over IO for performing tests; keeps the commandline flags - -- and a state counter for unique filename generation. - -- equivalent to ErrorT String (StateT Int (ReaderT TestMonadEnv IO)) -@@ -219,8 +221,7 @@ outputSpecial output (z@ZCursor {zCursor=Special pos@(SourcePos file line _) ke - "const" -> outputConst value show >> return False - "offset" -> outputConst ("offsetof(" ++ value ++ ")") (\i -> "(" ++ show i ++ ")") >> return False - "size" -> outputConst ("sizeof(" ++ value ++ ")") (\i -> "(" ++ show i ++ ")") >> return False -- "alignment" -> outputConst (alignment value) -- (\i -> "(" ++ show i ++ ")") >> return False -+ "alignment" -> outputConst (alignment value) show >> return False - "peek" -> outputConst ("offsetof(" ++ value ++ ")") - (\i -> "(\\hsc_ptr -> peekByteOff hsc_ptr " ++ show i ++ ")") >> return False - "poke" -> outputConst ("offsetof(" ++ value ++ ")") -@@ -271,19 +272,21 @@ checkValidity input = do - flags <- testGetFlags - let test = outTemplateHeaderCProg (cTemplate config) ++ - concatMap outFlagHeaderCProg flags ++ -- concatMap (uncurry outValidityCheck) (zip input [0..]) -+ concatMap (uncurry (outValidityCheck (cViaAsm config))) (zip input [0..]) - testLog ("checking for compilation errors") $ do - success <- makeTest2 (".c",".o") $ \(cFile,oFile) -> do - liftTestIO $ writeBinaryFile cFile test - compiler <- testGetCompiler - runCompiler compiler -- (["-c",cFile,"-o",oFile]++[f | CompFlag f <- flags]) -+ (["-S" | cViaAsm config ]++ -+ ["-c",cFile,"-o",oFile]++ -+ [f | CompFlag f <- flags]) - Nothing - when (not success) $ testFail' "compilation failed" - testLog' "compilation is error-free" - --outValidityCheck :: Token -> Int -> String --outValidityCheck s@(Special pos key value) uniq = -+outValidityCheck :: Bool -> Token -> Int -> String -+outValidityCheck viaAsm s@(Special pos key value) uniq = - case key of - "const" -> checkValidConst value - "offset" -> checkValidConst ("offsetof(" ++ value ++ ")") -@@ -296,20 +299,26 @@ outValidityCheck s@(Special pos key value) uniq = - "enum" -> checkValidEnum - _ -> outHeaderCProg' s - where -- checkValidConst value' = "void _hsc2hs_test" ++ show uniq ++ "()\n{\n" ++ validConstTest value' ++ "}\n"; -+ checkValidConst value' = if viaAsm -+ then validConstTestViaAsm (show uniq) value' ++ "\n" -+ else "void _hsc2hs_test" ++ show uniq ++ "()\n{\n" ++ validConstTest value' ++ "}\n" - checkValidType = "void _hsc2hs_test" ++ show uniq ++ "()\n{\n" ++ outCLine pos ++ " (void)(" ++ value ++ ")1;\n}\n"; - checkValidEnum = - case parseEnum value of - Nothing -> "" -+ Just (_,_,enums) | viaAsm -> -+ concatMap (\(hName,cName) -> validConstTestViaAsm (fromMaybe "noKey" (ATT.trim `fmap` hName) ++ show uniq) cName) enums - Just (_,_,enums) -> - "void _hsc2hs_test" ++ show uniq ++ "()\n{\n" ++ - concatMap (\(_,cName) -> validConstTest cName) enums ++ - "}\n" - - -- we want this to fail if the value is syntactically invalid or isn't a constant -- validConstTest value' = outCLine pos ++ " {\n static int test_array[(" ++ value' ++ ") > 0 ? 2 : 1];\n (void)test_array;\n }\n"; -+ validConstTest value' = outCLine pos ++ " {\n static int test_array[(" ++ value' ++ ") > 0 ? 2 : 1];\n (void)test_array;\n }\n" -+ validConstTestViaAsm name value' = outCLine pos ++ "\nextern long long _hsc2hs_test_" ++ name ++";\n" -+ ++ "long long _hsc2hs_test_" ++ name ++ " = (" ++ value' ++ ");\n" - --outValidityCheck (Text _ _) _ = "" -+outValidityCheck _ (Text _ _) _ = "" - - -- Skips over some #if or other conditional that we found to be false. - -- I.e. the argument should be a zipper whose cursor is one past the #if, -@@ -365,13 +374,16 @@ cShowCmpTest (LessOrEqual x) = "<=" ++ cShowInteger x - -- Determines the value of SOME_VALUE using binary search; this - -- is a trick which is cribbed from autoconf's AC_COMPUTE_INT. - computeConst :: ZCursor Token -> String -> TestMonad Integer --computeConst zOrig@(ZCursor (Special pos _ _) _ _) value = do -+computeConst zOrig@(ZCursor (Special pos _ _) _ _) value = - testLogAtPos pos ("computing " ++ value) $ do -- nonNegative <- compareConst z (GreaterOrEqual (Signed 0)) -- integral <- checkValueIsIntegral z nonNegative -- when (not integral) $ testFail pos $ value ++ " is not an integer" -- (lower,upper) <- bracketBounds z nonNegative -- int <- binarySearch z nonNegative lower upper -+ config <- testGetConfig -+ int <- case cViaAsm config of -+ True -> runCompileAsmIntegerTest z -+ False -> do nonNegative <- compareConst z (GreaterOrEqual (Signed 0)) -+ integral <- checkValueIsIntegral z nonNegative -+ when (not integral) $ testFail pos $ value ++ " is not an integer" -+ (lower,upper) <- bracketBounds z nonNegative -+ binarySearch z nonNegative lower upper - testLog' $ "result: " ++ show int - return int - where -- replace the Special's value with the provided value; e.g. the special -@@ -560,6 +572,39 @@ runCompileBooleanTest (ZCursor s above below) booleanTest = do - (concatMap outHeaderCProg' below) - runCompileTest test - -+runCompileAsmIntegerTest :: ZCursor Token -> TestMonad Integer -+runCompileAsmIntegerTest (ZCursor s@(Special _ _ value) above below) = do -+ config <- testGetConfig -+ flags <- testGetFlags -+ let key = "___hsc2hs_int_test" -+ let test = -- all the surrounding code -+ outTemplateHeaderCProg (cTemplate config) ++ -+ (concatMap outFlagHeaderCProg flags) ++ -+ (concatMap outHeaderCProg' above) ++ -+ outHeaderCProg' s ++ -+ -- the test -+ "extern unsigned long long ___hsc2hs_BOM___;\n" ++ -+ "unsigned long long ___hsc2hs_BOM___ = 0x100000000;\n" ++ -+ "extern unsigned long long " ++ key ++ "___hsc2hs_sign___;\n" ++ -+ "unsigned long long " ++ key ++ "___hsc2hs_sign___ = (" ++ value ++ ") < 0;\n" ++ -+ "extern unsigned long long " ++ key ++ ";\n" ++ -+ "unsigned long long " ++ key ++ " = (" ++ value ++ ");\n"++ -+ (concatMap outHeaderCProg' below) -+ runCompileExtract key test -+runCompileAsmIntegerTest _ = error "runCompileAsmIntegerTestargument isn't a Special" -+ -+runCompileExtract :: String -> String -> TestMonad Integer -+runCompileExtract k testStr = do -+ makeTest3 (".c", ".s", ".txt") $ \(cFile, sFile, stdout) -> do -+ liftTestIO $ writeBinaryFile cFile testStr -+ flags <- testGetFlags -+ compiler <- testGetCompiler -+ _ <- runCompiler compiler -+ (["-S", "-c", cFile, "-o", sFile] ++ [f | CompFlag f <- flags]) -+ (Just stdout) -+ asm <- liftTestIO $ ATT.parse sFile -+ return $ fromMaybe (error "Failed to extract integer") (ATT.lookupInteger k asm) -+ - runCompileTest :: String -> TestMonad Bool - runCompileTest testStr = do - makeTest3 (".c", ".o",".txt") $ \(cFile,oFile,stdout) -> do -diff --git a/utils/hsc2hs/Flags.hs b/utils/hsc2hs/Flags.hs -index b436672..d621fd1 100644 ---- a/utils/hsc2hs/Flags.hs -+++ b/utils/hsc2hs/Flags.hs -@@ -18,6 +18,7 @@ data ConfigM m = Config { - cKeepFiles :: Bool, - cNoCompile :: Bool, - cCrossCompile :: Bool, -+ cViaAsm :: Bool, - cCrossSafe :: Bool, - cColumn :: Bool, - cVerbose :: Bool, -@@ -41,6 +42,7 @@ emptyMode = UseConfig $ Config { - cKeepFiles = False, - cNoCompile = False, - cCrossCompile = False, -+ cViaAsm = False, - cCrossSafe = False, - cColumn = False, - cVerbose = False, -@@ -79,6 +81,8 @@ options = [ - "stop after writing *_hsc_make.c", - Option ['x'] ["cross-compile"] (NoArg (withConfig $ setCrossCompile True)) - "activate cross-compilation mode", -+ Option [] ["via-asm"] (NoArg (withConfig $ setViaAsm True)) -+ "use a crude asm parser to compute constants when cross compiling", - Option [] ["cross-safe"] (NoArg (withConfig $ setCrossSafe True)) - "restrict .hsc directives to those supported by --cross-compile", - Option ['k'] ["keep-files"] (NoArg (withConfig $ setKeepFiles True)) -@@ -124,6 +128,9 @@ setNoCompile b c = c { cNoCompile = b } - setCrossCompile :: Bool -> ConfigM Maybe -> ConfigM Maybe - setCrossCompile b c = c { cCrossCompile = b } - -+setViaAsm :: Bool -> ConfigM Maybe -> ConfigM Maybe -+setViaAsm b c = c { cViaAsm = b } -+ - setCrossSafe :: Bool -> ConfigM Maybe -> ConfigM Maybe - setCrossSafe b c = c { cCrossSafe = b } - -diff --git a/utils/hsc2hs/Main.hs b/utils/hsc2hs/Main.hs -index ba6b760..60c7276 100644 ---- a/utils/hsc2hs/Main.hs -+++ b/utils/hsc2hs/Main.hs -@@ -110,6 +110,7 @@ processFiles configM files usage = do - cKeepFiles = cKeepFiles configM, - cNoCompile = cNoCompile configM, - cCrossCompile = cCrossCompile configM, -+ cViaAsm = cViaAsm configM, - cCrossSafe = cCrossSafe configM, - cColumn = cColumn configM, - cVerbose = cVerbose configM, -diff --git a/utils/hsc2hs/Spec.hs b/utils/hsc2hs/Spec.hs -new file mode 100644 -index 0000000..973e92c ---- /dev/null -+++ b/utils/hsc2hs/Spec.hs -@@ -0,0 +1,46 @@ -+module Main where -+ -+import Test.Tasty.Hspec -+import ATTParser -+import Control.Monad (forM_) -+ -+main :: IO () -+main = hspec $ do -+ describe "asm parser" $ do -+ forM_ [("x86_64 linux", "test/asm/x86_64-linux.s") -+ ,("x86_64 macos", "test/asm/x86_64-mac.s") -+ ,("x86_64 mingw", "test/asm/x86_64-mingw32.s") -+ ,("aarch64 ios", "test/asm/aarch64-ios.s") -+ ,("aarch64 linux","test/asm/aarch64.s")] -+ $ \(d, f) ->do -+ context d $ do -+ x <- runIO $ parse f -+ -+ it "x should be 1" $ do -+ lookupInteger "x" x `shouldBe` (Just 1) -+ it "z should be 0xffffffffffffffff" $ do -+ lookupInteger "y" x `shouldBe` (Just 0xffffffffffffffff) -+ it "z should be -1" $ do -+ lookupInteger "z" x `shouldBe` (Just (-1)) -+ -+ it "t should be \"Hello World\\\"\\n\\0\"" $ do -+ lookupString "t" x `shouldBe` (Just "Hello World\" 12345\0") -+ -+ forM_ [("arm ios", "test/asm/arm-ios.s") -+ ,("arm linux", "test/asm/arm.s") -+ ,("x86 linux", "test/asm/x86-linux.s")] -+ $ \(d, f) ->do -+ context d $ do -+ x <- runIO $ parse f -+ -+ it "x should be 1" $ do -+ lookupInteger "x" x `shouldBe` (Just 1) -+ it "z should be 0xffffffff" $ do -+ lookupInteger "y" x `shouldBe` (Just 0xffffffff) -+ it "z should be -1" $ do -+ lookupInteger "z" x `shouldBe` (Just (-1)) -+ -+ it "t should be \"Hello World\\\"\\n\\0\"" $ do -+ lookupString "t" x `shouldBe` (Just "Hello World\" 12345\0") -+ -+ -diff --git a/utils/hsc2hs/hsc2hs.cabal b/utils/hsc2hs/hsc2hs.cabal -index 99d5072..c97f244 100644 ---- a/utils/hsc2hs/hsc2hs.cabal -+++ b/utils/hsc2hs/hsc2hs.cabal -@@ -23,8 +23,11 @@ Category: Development - Data-Files: template-hsc.h - build-type: Simple - cabal-version: >=1.10 --extra-source-files: changelog.md --tested-with: GHC==8.2.1, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4 -+tested-with: GHC==8.4.2, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4 -+ -+extra-source-files: -+ changelog.md -+ test/asm/*.s - - flag in-ghc-tree - description: Are we in a GHC tree? -@@ -45,6 +48,7 @@ Executable hsc2hs - DirectCodegen - Flags - HSCParser -+ ATTParser - UtilsCodegen - Paths_hsc2hs - -@@ -58,3 +62,13 @@ Executable hsc2hs - if flag(in-ghc-tree) - cpp-options: -DIN_GHC_TREE - -+test-suite spec -+ main-is: Spec.hs -+ hs-source-dirs: . -+ other-modules: ATTParser -+ ghc-options: -Wall -threaded -+ type: exitcode-stdio-1.0 -+ build-depends: base -+ , tasty -+ , tasty-hspec -+ default-language: Haskell2010 -diff --git a/utils/hsc2hs/test/asm/Makefile b/utils/hsc2hs/test/asm/Makefile -new file mode 100644 -index 0000000..91d2fcf ---- /dev/null -+++ b/utils/hsc2hs/test/asm/Makefile -@@ -0,0 +1,10 @@ -+all: -+ clang -target arm-linux-gnueabihf -S -c tmp.c -o arm.s -+ clang -target aarch64-linux-gnueabihf -S -c tmp.c -o aarch64.s -+ clang -target arm64-apple-ios -S -c tmp.c -o aarch64-ios.s -+ clang -target armv7-apple-ios -S -c tmp.c -o arm-ios.s -+ x86_64-w64-mingw32-gcc -S -c tmp.c -o x86_64-mingw32.s -+ clang -target i386-unknown-linux -S -c tmp.c -o x86-linux.s -+ clang -target x86_64-apple-macos -S -c tmp.c -o x86_64-mac.s -+ clang -target i386-unknown-linux -S -c tmp.c -o x86-linux.s -+ clang -target x86_64-unknown-linux -S -c tmp.c -o x86_64-linux.s -diff --git a/utils/hsc2hs/test/asm/aarch64-ios.s b/utils/hsc2hs/test/asm/aarch64-ios.s -new file mode 100644 -index 0000000..2adeeef ---- /dev/null -+++ b/utils/hsc2hs/test/asm/aarch64-ios.s -@@ -0,0 +1,44 @@ -+ .section __TEXT,__text,regular,pure_instructions -+ .ios_version_min 7, 0 -+ .section __DATA,__data -+ .globl ____hsc2hs_BOM___ ; @___hsc2hs_BOM___ -+ .p2align 3 -+____hsc2hs_BOM___: -+ .quad 4294967296 ; 0x100000000 -+ -+ .globl _x___hsc2hs_sign___ ; @x___hsc2hs_sign___ -+.zerofill __DATA,__common,_x___hsc2hs_sign___,8,3 -+ .globl _x ; @x -+ .p2align 3 -+_x: -+ .quad 1 ; 0x1 -+ -+ .globl _y___hsc2hs_sign___ ; @y___hsc2hs_sign___ -+.zerofill __DATA,__common,_y___hsc2hs_sign___,8,3 -+ .globl _y ; @y -+ .p2align 3 -+_y: -+ .quad -1 ; 0xffffffffffffffff -+ -+ .globl _z___hsc2hs_sign___ ; @z___hsc2hs_sign___ -+ .p2align 3 -+_z___hsc2hs_sign___: -+ .quad 1 ; 0x1 -+ -+ .globl _z ; @z -+ .p2align 3 -+_z: -+ .quad -1 ; 0xffffffffffffffff -+ -+ .section __TEXT,__cstring,cstring_literals -+l_.str: ; @.str -+ .asciz "Hello World\" 12345" -+ -+ .section __DATA,__data -+ .globl _t ; @t -+ .p2align 3 -+_t: -+ .quad l_.str -+ -+ -+.subsections_via_symbols -diff --git a/utils/hsc2hs/test/asm/aarch64.s b/utils/hsc2hs/test/asm/aarch64.s -new file mode 100644 -index 0000000..227c833 ---- /dev/null -+++ b/utils/hsc2hs/test/asm/aarch64.s -@@ -0,0 +1,73 @@ -+ .text -+ .file "tmp.c" -+ .type ___hsc2hs_BOM___,@object // @___hsc2hs_BOM___ -+ .data -+ .globl ___hsc2hs_BOM___ -+ .p2align 3 -+___hsc2hs_BOM___: -+ .xword 4294967296 // 0x100000000 -+ .size ___hsc2hs_BOM___, 8 -+ -+ .type x___hsc2hs_sign___,@object // @x___hsc2hs_sign___ -+ .bss -+ .globl x___hsc2hs_sign___ -+ .p2align 3 -+x___hsc2hs_sign___: -+ .xword 0 // 0x0 -+ .size x___hsc2hs_sign___, 8 -+ -+ .type x,@object // @x -+ .data -+ .globl x -+ .p2align 3 -+x: -+ .xword 1 // 0x1 -+ .size x, 8 -+ -+ .type y___hsc2hs_sign___,@object // @y___hsc2hs_sign___ -+ .bss -+ .globl y___hsc2hs_sign___ -+ .p2align 3 -+y___hsc2hs_sign___: -+ .xword 0 // 0x0 -+ .size y___hsc2hs_sign___, 8 -+ -+ .type y,@object // @y -+ .data -+ .globl y -+ .p2align 3 -+y: -+ .xword -1 // 0xffffffffffffffff -+ .size y, 8 -+ -+ .type z___hsc2hs_sign___,@object // @z___hsc2hs_sign___ -+ .globl z___hsc2hs_sign___ -+ .p2align 3 -+z___hsc2hs_sign___: -+ .xword 1 // 0x1 -+ .size z___hsc2hs_sign___, 8 -+ -+ .type z,@object // @z -+ .globl z -+ .p2align 3 -+z: -+ .xword -1 // 0xffffffffffffffff -+ .size z, 8 -+ -+ .type .L.str,@object // @.str -+ .section .rodata.str1.1,"aMS",@progbits,1 -+.L.str: -+ .asciz "Hello World\" 12345" -+ .size .L.str, 19 -+ -+ .type t,@object // @t -+ .data -+ .globl t -+ .p2align 3 -+t: -+ .xword .L.str -+ .size t, 8 -+ -+ -+ .ident "clang version 5.0.1 (tags/RELEASE_501/final)" -+ .section ".note.GNU-stack","",@progbits -diff --git a/utils/hsc2hs/test/asm/arm-ios.s b/utils/hsc2hs/test/asm/arm-ios.s -new file mode 100644 -index 0000000..56b1878 ---- /dev/null -+++ b/utils/hsc2hs/test/asm/arm-ios.s -@@ -0,0 +1,50 @@ -+ .section __TEXT,__text,regular,pure_instructions -+ .ios_version_min 5, 0 -+ .syntax unified -+ .section __DATA,__data -+ .globl ____hsc2hs_BOM___ @ @___hsc2hs_BOM___ -+ .p2align 3 -+____hsc2hs_BOM___: -+ .long 0 @ 0x100000000 -+ .long 1 -+ -+ .globl _x___hsc2hs_sign___ @ @x___hsc2hs_sign___ -+.zerofill __DATA,__common,_x___hsc2hs_sign___,8,3 -+ .globl _x @ @x -+ .p2align 3 -+_x: -+ .long 1 @ 0x1 -+ .long 0 -+ -+ .globl _y___hsc2hs_sign___ @ @y___hsc2hs_sign___ -+.zerofill __DATA,__common,_y___hsc2hs_sign___,8,3 -+ .globl _y @ @y -+ .p2align 3 -+_y: -+ .long 4294967295 @ 0xffffffff -+ .long 0 -+ -+ .globl _z___hsc2hs_sign___ @ @z___hsc2hs_sign___ -+ .p2align 3 -+_z___hsc2hs_sign___: -+ .long 1 @ 0x1 -+ .long 0 -+ -+ .globl _z @ @z -+ .p2align 3 -+_z: -+ .long 4294967295 @ 0xffffffffffffffff -+ .long 4294967295 -+ -+ .section __TEXT,__cstring,cstring_literals -+L_.str: @ @.str -+ .asciz "Hello World\" 12345" -+ -+ .section __DATA,__data -+ .globl _t @ @t -+ .p2align 2 -+_t: -+ .long L_.str -+ -+ -+.subsections_via_symbols -diff --git a/utils/hsc2hs/test/asm/arm.s b/utils/hsc2hs/test/asm/arm.s -new file mode 100644 -index 0000000..936ef7c ---- /dev/null -+++ b/utils/hsc2hs/test/asm/arm.s -@@ -0,0 +1,100 @@ -+ .text -+ .syntax unified -+ .eabi_attribute 67, "2.09" @ Tag_conformance -+ .cpu arm1176jzf-s -+ .eabi_attribute 6, 6 @ Tag_CPU_arch -+ .eabi_attribute 8, 1 @ Tag_ARM_ISA_use -+ .eabi_attribute 9, 1 @ Tag_THUMB_ISA_use -+ .fpu vfpv2 -+ .eabi_attribute 34, 0 @ Tag_CPU_unaligned_access -+ .eabi_attribute 68, 1 @ Tag_Virtualization_use -+ .eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use -+ .eabi_attribute 20, 2 @ Tag_ABI_FP_denormal -+ .eabi_attribute 21, 0 @ Tag_ABI_FP_exceptions -+ .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model -+ .eabi_attribute 24, 1 @ Tag_ABI_align_needed -+ .eabi_attribute 25, 1 @ Tag_ABI_align_preserved -+ .eabi_attribute 28, 1 @ Tag_ABI_VFP_args -+ .eabi_attribute 38, 1 @ Tag_ABI_FP_16bit_format -+ .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t -+ .eabi_attribute 26, 2 @ Tag_ABI_enum_size -+ .eabi_attribute 14, 0 @ Tag_ABI_PCS_R9_use -+ .file "tmp.c" -+ .type ___hsc2hs_BOM___,%object @ @___hsc2hs_BOM___ -+ .data -+ .globl ___hsc2hs_BOM___ -+ .p2align 3 -+___hsc2hs_BOM___: -+ .long 0 @ 0x100000000 -+ .long 1 -+ .size ___hsc2hs_BOM___, 8 -+ -+ .type x___hsc2hs_sign___,%object @ @x___hsc2hs_sign___ -+ .bss -+ .globl x___hsc2hs_sign___ -+ .p2align 3 -+x___hsc2hs_sign___: -+ .long 0 @ 0x0 -+ .long 0 -+ .size x___hsc2hs_sign___, 8 -+ -+ .type x,%object @ @x -+ .data -+ .globl x -+ .p2align 3 -+x: -+ .long 1 @ 0x1 -+ .long 0 -+ .size x, 8 -+ -+ .type y___hsc2hs_sign___,%object @ @y___hsc2hs_sign___ -+ .bss -+ .globl y___hsc2hs_sign___ -+ .p2align 3 -+y___hsc2hs_sign___: -+ .long 0 @ 0x0 -+ .long 0 -+ .size y___hsc2hs_sign___, 8 -+ -+ .type y,%object @ @y -+ .data -+ .globl y -+ .p2align 3 -+y: -+ .long 4294967295 @ 0xffffffff -+ .long 0 -+ .size y, 8 -+ -+ .type z___hsc2hs_sign___,%object @ @z___hsc2hs_sign___ -+ .globl z___hsc2hs_sign___ -+ .p2align 3 -+z___hsc2hs_sign___: -+ .long 1 @ 0x1 -+ .long 0 -+ .size z___hsc2hs_sign___, 8 -+ -+ .type z,%object @ @z -+ .globl z -+ .p2align 3 -+z: -+ .long 4294967295 @ 0xffffffffffffffff -+ .long 4294967295 -+ .size z, 8 -+ -+ .type .L.str,%object @ @.str -+ .section .rodata.str1.1,"aMS",%progbits,1 -+.L.str: -+ .asciz "Hello World\" 12345" -+ .size .L.str, 19 -+ -+ .type t,%object @ @t -+ .data -+ .globl t -+ .p2align 2 -+t: -+ .long .L.str -+ .size t, 4 -+ -+ -+ .ident "clang version 5.0.1 (tags/RELEASE_501/final)" -+ .section ".note.GNU-stack","",%progbits -diff --git a/utils/hsc2hs/test/asm/tmp.c b/utils/hsc2hs/test/asm/tmp.c -new file mode 100644 -index 0000000..f08f677 ---- /dev/null -+++ b/utils/hsc2hs/test/asm/tmp.c -@@ -0,0 +1,27 @@ -+struct S { int unused; }; -+ -+#define X 1 -+#define Y -1 -+ -+// if BOM is 1, we end up with two 32bit integers -+// where the upper 4 byte ended up in the lower 4. -+extern unsigned long long ___hsc2hs_BOM___; -+unsigned long long ___hsc2hs_BOM___ = 0x100000000; -+ -+extern unsigned long long x___hsc2hs_sign___; -+extern unsigned long long x; -+unsigned long long x___hsc2hs_sign___ = ((struct S *)X) < 0; -+unsigned long long x = (unsigned long long)((struct S *)X); -+ -+extern unsigned long long y___hsc2hs_sign___; -+extern unsigned long long y; -+unsigned long long y___hsc2hs_sign___ = ((struct S *)Y) < 0; -+unsigned long long y = (unsigned long long)((struct S *)Y); -+ -+extern unsigned long long z___hsc2hs_sign___; -+extern unsigned long long z; -+unsigned long long z___hsc2hs_sign___ = Y < 0; -+unsigned long long z = (unsigned long long)Y; -+ -+extern char * t; -+char * t = "Hello World\" 12345"; -diff --git a/utils/hsc2hs/test/asm/x86-linux.s b/utils/hsc2hs/test/asm/x86-linux.s -new file mode 100644 -index 0000000..8808d41 ---- /dev/null -+++ b/utils/hsc2hs/test/asm/x86-linux.s -@@ -0,0 +1,73 @@ -+ .text -+ .file "tmp.c" -+ .type ___hsc2hs_BOM___,@object # @___hsc2hs_BOM___ -+ .data -+ .globl ___hsc2hs_BOM___ -+ .p2align 3 -+___hsc2hs_BOM___: -+ .quad 4294967296 # 0x100000000 -+ .size ___hsc2hs_BOM___, 8 -+ -+ .type x___hsc2hs_sign___,@object # @x___hsc2hs_sign___ -+ .bss -+ .globl x___hsc2hs_sign___ -+ .p2align 3 -+x___hsc2hs_sign___: -+ .quad 0 # 0x0 -+ .size x___hsc2hs_sign___, 8 -+ -+ .type x,@object # @x -+ .data -+ .globl x -+ .p2align 3 -+x: -+ .quad 1 # 0x1 -+ .size x, 8 -+ -+ .type y___hsc2hs_sign___,@object # @y___hsc2hs_sign___ -+ .bss -+ .globl y___hsc2hs_sign___ -+ .p2align 3 -+y___hsc2hs_sign___: -+ .quad 0 # 0x0 -+ .size y___hsc2hs_sign___, 8 -+ -+ .type y,@object # @y -+ .data -+ .globl y -+ .p2align 3 -+y: -+ .quad 4294967295 # 0xffffffff -+ .size y, 8 -+ -+ .type z___hsc2hs_sign___,@object # @z___hsc2hs_sign___ -+ .globl z___hsc2hs_sign___ -+ .p2align 3 -+z___hsc2hs_sign___: -+ .quad 1 # 0x1 -+ .size z___hsc2hs_sign___, 8 -+ -+ .type z,@object # @z -+ .globl z -+ .p2align 3 -+z: -+ .quad -1 # 0xffffffffffffffff -+ .size z, 8 -+ -+ .type .L.str,@object # @.str -+ .section .rodata.str1.1,"aMS",@progbits,1 -+.L.str: -+ .asciz "Hello World\" 12345" -+ .size .L.str, 19 -+ -+ .type t,@object # @t -+ .data -+ .globl t -+ .p2align 2 -+t: -+ .long .L.str -+ .size t, 4 -+ -+ -+ .ident "clang version 5.0.1 (tags/RELEASE_501/final)" -+ .section ".note.GNU-stack","",@progbits -diff --git a/utils/hsc2hs/test/asm/x86_64-linux.s b/utils/hsc2hs/test/asm/x86_64-linux.s -new file mode 100644 -index 0000000..351196e ---- /dev/null -+++ b/utils/hsc2hs/test/asm/x86_64-linux.s -@@ -0,0 +1,73 @@ -+ .text -+ .file "tmp.c" -+ .type ___hsc2hs_BOM___,@object # @___hsc2hs_BOM___ -+ .data -+ .globl ___hsc2hs_BOM___ -+ .p2align 3 -+___hsc2hs_BOM___: -+ .quad 4294967296 # 0x100000000 -+ .size ___hsc2hs_BOM___, 8 -+ -+ .type x___hsc2hs_sign___,@object # @x___hsc2hs_sign___ -+ .bss -+ .globl x___hsc2hs_sign___ -+ .p2align 3 -+x___hsc2hs_sign___: -+ .quad 0 # 0x0 -+ .size x___hsc2hs_sign___, 8 -+ -+ .type x,@object # @x -+ .data -+ .globl x -+ .p2align 3 -+x: -+ .quad 1 # 0x1 -+ .size x, 8 -+ -+ .type y___hsc2hs_sign___,@object # @y___hsc2hs_sign___ -+ .bss -+ .globl y___hsc2hs_sign___ -+ .p2align 3 -+y___hsc2hs_sign___: -+ .quad 0 # 0x0 -+ .size y___hsc2hs_sign___, 8 -+ -+ .type y,@object # @y -+ .data -+ .globl y -+ .p2align 3 -+y: -+ .quad -1 # 0xffffffffffffffff -+ .size y, 8 -+ -+ .type z___hsc2hs_sign___,@object # @z___hsc2hs_sign___ -+ .globl z___hsc2hs_sign___ -+ .p2align 3 -+z___hsc2hs_sign___: -+ .quad 1 # 0x1 -+ .size z___hsc2hs_sign___, 8 -+ -+ .type z,@object # @z -+ .globl z -+ .p2align 3 -+z: -+ .quad -1 # 0xffffffffffffffff -+ .size z, 8 -+ -+ .type .L.str,@object # @.str -+ .section .rodata.str1.1,"aMS",@progbits,1 -+.L.str: -+ .asciz "Hello World\" 12345" -+ .size .L.str, 19 -+ -+ .type t,@object # @t -+ .data -+ .globl t -+ .p2align 3 -+t: -+ .quad .L.str -+ .size t, 8 -+ -+ -+ .ident "clang version 5.0.1 (tags/RELEASE_501/final)" -+ .section ".note.GNU-stack","",@progbits -diff --git a/utils/hsc2hs/test/asm/x86_64-mac.s b/utils/hsc2hs/test/asm/x86_64-mac.s -new file mode 100644 -index 0000000..88a0e08 ---- /dev/null -+++ b/utils/hsc2hs/test/asm/x86_64-mac.s -@@ -0,0 +1,44 @@ -+ .section __TEXT,__text,regular,pure_instructions -+ .macosx_version_min 10, 4 -+ .section __DATA,__data -+ .globl ____hsc2hs_BOM___ ## @___hsc2hs_BOM___ -+ .p2align 3 -+____hsc2hs_BOM___: -+ .quad 4294967296 ## 0x100000000 -+ -+ .globl _x___hsc2hs_sign___ ## @x___hsc2hs_sign___ -+.zerofill __DATA,__common,_x___hsc2hs_sign___,8,3 -+ .globl _x ## @x -+ .p2align 3 -+_x: -+ .quad 1 ## 0x1 -+ -+ .globl _y___hsc2hs_sign___ ## @y___hsc2hs_sign___ -+.zerofill __DATA,__common,_y___hsc2hs_sign___,8,3 -+ .globl _y ## @y -+ .p2align 3 -+_y: -+ .quad -1 ## 0xffffffffffffffff -+ -+ .globl _z___hsc2hs_sign___ ## @z___hsc2hs_sign___ -+ .p2align 3 -+_z___hsc2hs_sign___: -+ .quad 1 ## 0x1 -+ -+ .globl _z ## @z -+ .p2align 3 -+_z: -+ .quad -1 ## 0xffffffffffffffff -+ -+ .section __TEXT,__cstring,cstring_literals -+L_.str: ## @.str -+ .asciz "Hello World\" 12345" -+ -+ .section __DATA,__data -+ .globl _t ## @t -+ .p2align 3 -+_t: -+ .quad L_.str -+ -+ -+.subsections_via_symbols -diff --git a/utils/hsc2hs/test/asm/x86_64-mingw32.s b/utils/hsc2hs/test/asm/x86_64-mingw32.s -new file mode 100644 -index 0000000..031061d ---- /dev/null -+++ b/utils/hsc2hs/test/asm/x86_64-mingw32.s -@@ -0,0 +1,44 @@ -+ .file "tmp.c" -+ .text -+ .globl ___hsc2hs_BOM___ -+ .data -+ .align 8 -+___hsc2hs_BOM___: -+ .quad 4294967296 -+ .globl x___hsc2hs_sign___ -+ .bss -+ .align 8 -+x___hsc2hs_sign___: -+ .space 8 -+ .globl x -+ .data -+ .align 8 -+x: -+ .quad 1 -+ .globl y___hsc2hs_sign___ -+ .bss -+ .align 8 -+y___hsc2hs_sign___: -+ .space 8 -+ .globl y -+ .data -+ .align 8 -+y: -+ .quad -1 -+ .globl z___hsc2hs_sign___ -+ .align 8 -+z___hsc2hs_sign___: -+ .quad 1 -+ .globl z -+ .align 8 -+z: -+ .quad -1 -+ .globl t -+ .section .rdata,"dr" -+.LC0: -+ .ascii "Hello World\" 12345\0" -+ .data -+ .align 8 -+t: -+ .quad .LC0 -+ .ident "GCC: (GNU) 7.3.0" diff --git a/nix/patches/ghc/lowercase-8.4.2.patch b/nix/patches/ghc/lowercase-8.4.2.patch deleted file mode 100644 index 4c651dd9e96..00000000000 --- a/nix/patches/ghc/lowercase-8.4.2.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff --git a/driver/utils/dynwrapper.c b/driver/utils/dynwrapper.c -index a9250f58ba..24c6327cce 100644 ---- a/driver/utils/dynwrapper.c -+++ b/driver/utils/dynwrapper.c -@@ -9,8 +9,8 @@ int rtsOpts; - - #include - #include --#include --#include -+#include -+#include - - #include "Rts.h" - -diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c -index 3dcf8c4281..364f7780b2 100644 ---- a/rts/linker/PEi386.c -+++ b/rts/linker/PEi386.c -@@ -156,7 +156,7 @@ static uint8_t* cstring_from_COFF_symbol_name( - #include - #include - #include --#include -+#include - - #if defined(x86_64_HOST_ARCH) - static size_t makeSymbolExtra_PEi386( -diff --git a/rts/package.conf.in b/rts/package.conf.in -index 05d98a51c4..15b8ac24c8 100644 ---- a/rts/package.conf.in -+++ b/rts/package.conf.in -@@ -45,8 +45,8 @@ extra-libraries: - ,"wsock32" /* for the linker */ - ,"gdi32" /* for the linker */ - ,"winmm" /* for the linker */ -- ,"Dbghelp" /* for crash dump */ -- ,"Psapi" /* for process information. */ -+ ,"dbghelp" /* for crash dump */ -+ ,"psapi" /* for process information. */ - #endif - #if NEED_PTHREAD_LIB - , "pthread" /* for pthread_getthreadid_np, pthread_create, etc. */ -diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in -index 71aef3df0e..53b6271b10 100644 ---- a/rts/rts.cabal.in -+++ b/rts/rts.cabal.in -@@ -58,9 +58,9 @@ library - -- for the linker - wsock32 gdi32 winmm - -- for crash dump -- Dbghelp -+ dbghelp - -- for process information -- Psapi -+ psapi - if flag(need-pthread) - -- for pthread_getthreadid_np, pthread_create, ... - extra-libraries: pthread -diff --git a/rts/win32/veh_excn.c b/rts/win32/veh_excn.c -index fd50562448..4b7d29a1a1 100644 ---- a/rts/win32/veh_excn.c -+++ b/rts/win32/veh_excn.c -@@ -20,7 +20,7 @@ - #include - #include - #include --#include -+#include - - ///////////////////////////////// - // Exception / signal handlers. -diff --git a/rules/build-prog.mk b/rules/build-prog.mk -index 82c55a70e1..21f99e2bbf 100644 ---- a/rules/build-prog.mk -+++ b/rules/build-prog.mk -@@ -230,7 +230,7 @@ endif - - $1/$2/build/tmp/$$($1_$2_PROG)-inplace-wrapper.c: driver/utils/dynwrapper.c | $$$$(dir $$$$@)/. - $$(call removeFiles,$$@) -- echo '#include ' >> $$@ -+ echo '#include ' >> $$@ - echo '#include "Rts.h"' >> $$@ - echo 'LPTSTR path_dirs[] = {' >> $$@ - $$(foreach d,$$($1_$2_DEP_LIB_REL_DIRS),$$(call make-command,echo ' TEXT("/../../$$d")$$(comma)' >> $$@)) -@@ -243,7 +243,7 @@ $1/$2/build/tmp/$$($1_$2_PROG)-inplace-wrapper.c: driver/utils/dynwrapper.c | $$ - - $1/$2/build/tmp/$$($1_$2_PROG)-wrapper.c: driver/utils/dynwrapper.c | $$$$(dir $$$$@)/. - $$(call removeFiles,$$@) -- echo '#include ' >> $$@ -+ echo '#include ' >> $$@ - echo '#include "Rts.h"' >> $$@ - echo 'LPTSTR path_dirs[] = {' >> $$@ - $$(foreach p,$$($1_$2_TRANSITIVE_DEP_COMPONENT_IDS),$$(call make-command,echo ' TEXT("/../lib/$$p")$$(comma)' >> $$@)) diff --git a/nix/patches/ghc/move-iserv-8.4.2.patch b/nix/patches/ghc/move-iserv-8.4.2.patch deleted file mode 100644 index fb8ad2e144a..00000000000 --- a/nix/patches/ghc/move-iserv-8.4.2.patch +++ /dev/null @@ -1,1001 +0,0 @@ -diff --git a/aclocal.m4 b/aclocal.m4 -index ac20bbc630..0e3a302ef6 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -2383,7 +2383,8 @@ AC_DEFUN([FIND_LD],[ - FP_CC_LINKER_FLAG_TRY(bfd, $2) ;; - "GNU gold"*) - FP_CC_LINKER_FLAG_TRY(gold, $2) -- LD_NO_GOLD=ld -+ LD_NO_GOLD= -+ AC_CHECK_TARGET_TOOL([LD_NO_GOLD],[ld]) - ;; - "LLD"*) - FP_CC_LINKER_FLAG_TRY(lld, $2) ;; -diff --git a/configure.ac b/configure.ac -index b74938f7da..8bed181915 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -16,7 +16,7 @@ dnl - AC_INIT([The Glorious Glasgow Haskell Compilation System], [8.4.2], [glasgow-haskell-bugs@haskell.org], [ghc-AC_PACKAGE_VERSION]) - - # Set this to YES for a released version, otherwise NO --: ${RELEASE=YES} -+: ${RELEASE=NO} - - # The primary version (e.g. 7.5, 7.4.1) is set in the AC_INIT line - # above. If this is not a released version, then we will append the -diff --git a/ghc.mk b/ghc.mk -index 38c165d261..1a99aa3bb0 100644 ---- a/ghc.mk -+++ b/ghc.mk -@@ -473,6 +473,7 @@ endif - PACKAGES_STAGE1 += stm - PACKAGES_STAGE1 += haskeline - PACKAGES_STAGE1 += ghci -+PACKAGES_STAGE1 += libiserv - - # See Note [No stage2 packages when CrossCompiling or Stage1Only]. - # See Note [Stage1Only vs stage=1] in mk/config.mk.in. -@@ -537,9 +538,9 @@ utils/ghc-pkg/dist-install/package-data.mk: $(fixed_pkg_prev) - utils/hsc2hs/dist-install/package-data.mk: $(fixed_pkg_prev) - utils/compare_sizes/dist-install/package-data.mk: $(fixed_pkg_prev) - utils/runghc/dist-install/package-data.mk: $(fixed_pkg_prev) --iserv/stage2/package-data.mk: $(fixed_pkg_prev) --iserv/stage2_p/package-data.mk: $(fixed_pkg_prev) --iserv/stage2_dyn/package-data.mk: $(fixed_pkg_prev) -+utils/iserv/stage2/package-data.mk: $(fixed_pkg_prev) -+utils/iserv/stage2_p/package-data.mk: $(fixed_pkg_prev) -+utils/iserv/stage2_dyn/package-data.mk: $(fixed_pkg_prev) - ifeq "$(Windows_Host)" "YES" - utils/gen-dll/dist-install/package-data.mk: $(fixed_pkg_prev) - endif -@@ -687,7 +688,7 @@ BUILD_DIRS += ghc - BUILD_DIRS += docs/users_guide - BUILD_DIRS += utils/count_lines - BUILD_DIRS += utils/compare_sizes --BUILD_DIRS += iserv -+BUILD_DIRS += utils/iserv - - # ---------------------------------------------- - # Actually include the sub-ghc.mk's -@@ -1105,7 +1106,7 @@ BIN_DIST_MK = $(BIN_DIST_PREP_DIR)/bindist.mk - unix-binary-dist-prep: - $(call removeTrees,bindistprep/) - "$(MKDIRHIER)" $(BIN_DIST_PREP_DIR) -- set -e; for i in packages LICENSE compiler ghc iserv rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh settings.in llvm-targets ghc.mk inplace distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done -+ set -e; for i in packages LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh settings.in llvm-targets ghc.mk inplace distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done - echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_MK) - echo "BUILD_SPHINX_HTML = $(BUILD_SPHINX_HTML)" >> $(BIN_DIST_MK) - echo "BUILD_SPHINX_PDF = $(BUILD_SPHINX_PDF)" >> $(BIN_DIST_MK) -@@ -1199,7 +1200,7 @@ SRC_DIST_TESTSUITE_TARBALL = $(SRC_DIST_ROOT)/$(SRC_DIST_TESTSUITE_NAME). - # Files to include in source distributions - # - SRC_DIST_GHC_DIRS = mk rules docs distrib bindisttest libffi includes \ -- utils docs rts compiler ghc driver libraries libffi-tarballs iserv -+ utils docs rts compiler ghc driver libraries libffi-tarballs - SRC_DIST_GHC_FILES += \ - configure.ac config.guess config.sub configure \ - aclocal.m4 README.md ANNOUNCE HACKING.md INSTALL.md LICENSE Makefile \ -diff --git a/iserv/Makefile b/libraries/libiserv/Makefile -similarity index 100% -rename from iserv/Makefile -rename to libraries/libiserv/Makefile -diff --git a/iserv/cbits/iservmain.c b/libraries/libiserv/cbits/iservmain.c -similarity index 100% -rename from iserv/cbits/iservmain.c -rename to libraries/libiserv/cbits/iservmain.c -diff --git a/libraries/libiserv/ghc.mk b/libraries/libiserv/ghc.mk -new file mode 100644 -index 0000000000..6dc323b336 ---- /dev/null -+++ b/libraries/libiserv/ghc.mk -@@ -0,0 +1,5 @@ -+libraries/libiserv_PACKAGE = libiserv -+libraries/libiserv_dist-install_GROUP = libraries -+$(if $(filter libiserv,$(PACKAGES_STAGE0)),$(eval $(call build-package,libraries/libiserv,dist-boot,0))) -+$(if $(filter libiserv,$(PACKAGES_STAGE1)),$(eval $(call build-package,libraries/libiserv,dist-install,1))) -+$(if $(filter libiserv,$(PACKAGES_STAGE2)),$(eval $(call build-package,libraries/libiserv,dist-install,2))) -diff --git a/libraries/libiserv/libiserv.cabal b/libraries/libiserv/libiserv.cabal -new file mode 100644 -index 0000000000..3a5368e6bd ---- /dev/null -+++ b/libraries/libiserv/libiserv.cabal -@@ -0,0 +1,39 @@ -+Name: libiserv -+Version: 8.4 -+Copyright: XXX -+License: BSD3 -+-- XXX License-File: LICENSE -+Author: XXX -+Maintainer: XXX -+Synopsis: Provides shared functionality between iserv and iserv-proxy -+Description: -+Category: Development -+build-type: Simple -+cabal-version: >=1.10 -+ -+Flag network -+ Description: Build libiserv with over-the-network support -+ Default: False -+ -+Library -+ Default-Language: Haskell2010 -+ Hs-Source-Dirs: src -+ Exposed-Modules: Lib -+ , GHCi.Utils -+ Build-Depends: base >= 4 && < 5, -+ binary >= 0.7 && < 0.9, -+ bytestring >= 0.10 && < 0.11, -+ containers >= 0.5 && < 0.6, -+ deepseq >= 1.4 && < 1.5, -+ ghci == 8.4.* -+ if flag(network) -+ Exposed-Modules: Remote.Message -+ , Remote.Slave -+ Build-Depends: network >= 2.6 && < 2.7, -+ directory >= 1.3 && < 1.4, -+ filepath >= 1.4 && < 1.5 -+ -+ if os(windows) -+ Cpp-Options: -DWINDOWS -+ else -+ Build-Depends: unix >= 2.7 && < 2.8 -diff --git a/iserv/proxy-src/Remote.hs b/libraries/libiserv/proxy-src/Remote.hs -similarity index 100% -rename from iserv/proxy-src/Remote.hs -rename to libraries/libiserv/proxy-src/Remote.hs -diff --git a/iserv/src/GHCi/Utils.hsc b/libraries/libiserv/src/GHCi/Utils.hsc -similarity index 100% -rename from iserv/src/GHCi/Utils.hsc -rename to libraries/libiserv/src/GHCi/Utils.hsc -diff --git a/iserv/src/Lib.hs b/libraries/libiserv/src/Lib.hs -similarity index 100% -rename from iserv/src/Lib.hs -rename to libraries/libiserv/src/Lib.hs -diff --git a/iserv/src/Remote/Message.hs b/libraries/libiserv/src/Remote/Message.hs -similarity index 100% -rename from iserv/src/Remote/Message.hs -rename to libraries/libiserv/src/Remote/Message.hs -diff --git a/iserv/src/Remote/Slave.hs b/libraries/libiserv/src/Remote/Slave.hs -similarity index 94% -rename from iserv/src/Remote/Slave.hs -rename to libraries/libiserv/src/Remote/Slave.hs -index b80d09592f..701e7d24c9 100644 ---- a/iserv/src/Remote/Slave.hs -+++ b/libraries/libiserv/src/Remote/Slave.hs -@@ -112,14 +112,18 @@ hook verbose base_path pipe m = case m of - handleLoad pipe path (base_path path) - return $ Msg (LoadObj (base_path path)) - Msg (LoadArchive path) -> do -+ when verbose $ putStrLn ("Need Archieve: " ++ path ++ " at " ++ (base_path path)) - handleLoad pipe path (base_path path) - return $ Msg (LoadArchive (base_path path)) - -- when loading DLLs (.so, .dylib, .dll, ...) and these are provided - -- as relative paths, the intention is to load a pre-existing system library, - -- therefore we hook the LoadDLL call only for absolute paths to ship the - -- dll from the host to the target. -+ Msg (LoadDLL path@('C':':':_)) -> do -+ when verbose $ putStrLn ("Need DLL: " ++ path) -+ return $ Msg (LoadDLL path) - Msg (LoadDLL path) | isAbsolute path -> do -- when verbose $ putStrLn ("Need DLL: " ++ (base_path path)) -+ when verbose $ putStrLn ("Need DLL: " ++ path ++ " at " ++ (base_path path)) - handleLoad pipe path (base_path path) - return $ Msg (LoadDLL (base_path path)) - _other -> return m -diff --git a/mk/config.mk.in b/mk/config.mk.in -index e5ec04a195..0c8e1bb7e3 100644 ---- a/mk/config.mk.in -+++ b/mk/config.mk.in -@@ -537,7 +537,7 @@ AS_STAGE1 = $(AS) - AS_STAGE2 = $(AS) - AS_STAGE3 = $(AS) - --# why no LD=@LD@ ? -+LD = @LD@ - LD_STAGE0 = @LD_STAGE0@ - LD_STAGE1 = $(LD) - LD_STAGE2 = $(LD) -diff --git a/utils/iserv-proxy/Makefile b/utils/iserv-proxy/Makefile -new file mode 100644 -index 0000000000..f160978c19 ---- /dev/null -+++ b/utils/iserv-proxy/Makefile -@@ -0,0 +1,15 @@ -+# ----------------------------------------------------------------------------- -+# -+# (c) 2009 The University of Glasgow -+# -+# This file is part of the GHC build system. -+# -+# To understand how the build system works and how to modify it, see -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Architecture -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Modifying -+# -+# ----------------------------------------------------------------------------- -+ -+dir = iserv -+TOP = .. -+include $(TOP)/mk/sub-makefile.mk -diff --git a/utils/iserv-proxy/cabal.project b/utils/iserv-proxy/cabal.project -new file mode 100644 -index 0000000000..2e6cd12dc9 ---- /dev/null -+++ b/utils/iserv-proxy/cabal.project -@@ -0,0 +1,4 @@ -+packages: . ../../libraries/libiserv -+ -+package libiserv -+ flags: +network -diff --git a/utils/iserv-proxy/ghc.mk b/utils/iserv-proxy/ghc.mk -new file mode 100644 -index 0000000000..b90a96a1fa ---- /dev/null -+++ b/utils/iserv-proxy/ghc.mk -@@ -0,0 +1,113 @@ -+# ----------------------------------------------------------------------------- -+# -+# (c) 2009-2012 The University of Glasgow -+# -+# This file is part of the GHC build system. -+# -+# To understand how the build system works and how to modify it, see -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Architecture -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Modifying -+# -+# ----------------------------------------------------------------------------- -+ -+utils/iserv-proxy_USES_CABAL = YES -+utils/iserv-proxy_PACKAGE = iserv-proxy -+utils/iserv-proxy_EXECUTABLE = iserv-proxy -+ -+ifeq "$(GhcDebugged)" "YES" -+utils/iserv-proxy_stage2_MORE_HC_OPTS += -debug -+utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -debug -+utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -debug -+endif -+ -+ifeq "$(GhcThreaded)" "YES" -+utils/iserv-proxy_stage2_MORE_HC_OPTS += -threaded -+utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -threaded -+utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -threaded -+endif -+ -+# Add -Wl,--export-dynamic enables GHCi to load dynamic objects that -+# refer to the RTS. This is harmless if you don't use it (adds a bit -+# of overhead to startup and increases the binary sizes) but if you -+# need it there's no alternative. -+ifeq "$(TargetElf)" "YES" -+ifneq "$(TargetOS_CPP)" "solaris2" -+# The Solaris linker does not support --export-dynamic option. It also -+# does not need it since it exports all dynamic symbols by default -+utils/iserv-proxy_stage2_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+endif -+endif -+ -+# Override the default way, because we want a specific version of this -+# program for each way. Note that it's important to do this even for -+# the vanilla version, otherwise we get a dynamic executable when -+# DYNAMIC_GHC_PROGRAMS=YES. -+utils/iserv-proxy_stage2_PROGRAM_WAY = v -+utils/iserv-proxy_stage2_p_PROGRAM_WAY = p -+utils/iserv-proxy_stage2_dyn_PROGRAM_WAY = dyn -+ -+utils/iserv-proxy_stage2_PROGNAME = ghc-iserv -+utils/iserv-proxy_stage2_p_PROGNAME = ghc-iserv-prof -+utils/iserv-proxy_stage2_dyn_PROGNAME = ghc-iserv-dyn -+ -+utils/iserv-proxy_stage2_MORE_HC_OPTS += -no-hs-main -+utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -no-hs-main -+utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -no-hs-main -+ -+utils/iserv-proxy_stage2_INSTALL = YES -+utils/iserv-proxy_stage2_p_INSTALL = YES -+utils/iserv-proxy_stage2_dyn_INSTALL = YES -+ -+# Install in $(libexec), not in $(bindir) -+utils/iserv-proxy_stage2_TOPDIR = YES -+utils/iserv-proxy_stage2_p_TOPDIR = YES -+utils/iserv-proxy_stage2_dyn_TOPDIR = YES -+ -+utils/iserv-proxy_stage2_INSTALL_INPLACE = YES -+utils/iserv-proxy_stage2_p_INSTALL_INPLACE = YES -+utils/iserv-proxy_stage2_dyn_INSTALL_INPLACE = YES -+ -+ifeq "$(CLEANING)" "YES" -+ -+NEED_iserv = YES -+NEED_iserv_p = YES -+NEED_iserv_dyn = YES -+ -+else -+ -+ifneq "$(findstring v, $(GhcLibWays))" "" -+NEED_iserv = YES -+else -+NEED_iserv = NO -+endif -+ -+ifneq "$(findstring p, $(GhcLibWays))" "" -+NEED_iserv_p = YES -+else -+NEED_iserv_p = NO -+endif -+ -+ifneq "$(findstring dyn, $(GhcLibWays))" "" -+NEED_iserv_dyn = YES -+else -+NEED_iserv_dyn = NO -+endif -+endif -+ -+ifeq "$(NEED_iserv)" "YES" -+$(eval $(call build-prog,utils/iserv-proxy,stage2,1)) -+endif -+ -+ifeq "$(NEED_iserv_p)" "YES" -+$(eval $(call build-prog,utils/iserv-proxy,stage2_p,1)) -+endif -+ -+ifeq "$(NEED_iserv_dyn)" "YES" -+$(eval $(call build-prog,utils/iserv-proxy,stage2_dyn,1)) -+endif -+ -+all_ghc_stage2 : $(iserv-proxy-stage2_INPLACE) -+all_ghc_stage2 : $(iserv-proxy-stage2_p_INPLACE) -+all_ghc_stage2 : $(iserv-proxy-stage2_dyn_INPLACE) -diff --git a/iserv/iserv-bin.cabal b/utils/iserv-proxy/iserv-proxy.cabal -similarity index 61% -rename from iserv/iserv-bin.cabal -rename to utils/iserv-proxy/iserv-proxy.cabal -index 4c68d8b392..0ab0cfcff2 100644 ---- a/iserv/iserv-bin.cabal -+++ b/utils/iserv-proxy/iserv-proxy.cabal -@@ -1,5 +1,5 @@ --Name: iserv-bin --Version: 0.0 -+Name: iserv-proxy -+Version: 8.5 - Copyright: XXX - License: BSD3 - -- XXX License-File: LICENSE -@@ -61,72 +61,10 @@ Category: Development - build-type: Simple - cabal-version: >=1.10 - --Flag library -- Description: Build iserv library -- Default: False -- --Flag proxy -- Description: Build iserv-proxy -- Default: False -- --Library -- If flag(library) -- Buildable: True -- Else -- Buildable: False -- Default-Language: Haskell2010 -- Hs-Source-Dirs: src -- Exposed-Modules: Lib -- , Remote.Message -- , Remote.Slave -- , GHCi.Utils -- Build-Depends: base >= 4 && < 5, -- binary >= 0.7 && < 0.9, -- bytestring >= 0.10 && < 0.11, -- containers >= 0.5 && < 0.6, -- deepseq >= 1.4 && < 1.5, -- ghci == 8.4.*, -- network >= 2.6 && < 2.7, -- directory >= 1.3 && < 1.4, -- filepath >= 1.4 && < 1.5 -- if os(windows) -- Cpp-Options: -DWINDOWS -- else -- Build-Depends: unix >= 2.7 && < 2.8 -- --Executable iserv -- Default-Language: Haskell2010 -- ghc-options: -no-hs-main -- Main-Is: Main.hs -- C-Sources: cbits/iservmain.c -- Hs-Source-Dirs: src -- include-dirs: . -- If flag(library) -- Other-Modules: GHCi.Utils -- Else -- Other-Modules: GHCi.Utils -- , Lib -- Build-Depends: array >= 0.5 && < 0.6, -- base >= 4 && < 5, -- binary >= 0.7 && < 0.9, -- bytestring >= 0.10 && < 0.11, -- containers >= 0.5 && < 0.6, -- deepseq >= 1.4 && < 1.5, -- ghci == 8.4.* -- -- if os(windows) -- Cpp-Options: -DWINDOWS -- else -- Build-Depends: unix >= 2.7 && < 2.8 -- - Executable iserv-proxy -- If flag(proxy) -- Buildable: True -- Else -- Buildable: False - Default-Language: Haskell2010 -- Main-Is: Remote.hs -- Hs-Source-Dirs: proxy-src -+ Main-Is: Main.hs -+ Hs-Source-Dirs: src - Build-Depends: array >= 0.5 && < 0.6, - base >= 4 && < 5, - binary >= 0.7 && < 0.9, -@@ -137,4 +75,4 @@ Executable iserv-proxy - directory >= 1.3 && < 1.4, - network >= 2.6, - filepath >= 1.4 && < 1.5, -- iserv-bin -+ libiserv == 8.4 -diff --git a/utils/iserv-proxy/src/Main.hs b/utils/iserv-proxy/src/Main.hs -new file mode 100644 -index 0000000000..c91b2d08c6 ---- /dev/null -+++ b/utils/iserv-proxy/src/Main.hs -@@ -0,0 +1,262 @@ -+{-# LANGUAGE CPP, GADTs, OverloadedStrings #-} -+ -+{- -+This is the proxy portion of iserv. -+ -+It acts as local bridge for GHC to call -+a remote slave. This all might sound -+confusing, so let's try to get some -+naming down. -+ -+GHC is the actual Haskell compiler, that -+acts as frontend to the code to be compiled. -+ -+iserv is the slave, that GHC delegates compilation -+of TH to. As such it needs to be compiled for -+and run on the Target. In the special case -+where the Host and the Target are the same, -+no proxy is needed. GHC and iserv communicate -+via pipes. -+ -+iserv-proxy is the proxy instance to iserv. -+The following illustration should make this -+somewhat clear: -+ -+ .----- Host -----. .- Target -. -+ | GHC <--> proxy<+-----+> iserv | -+ '----------------' ^ '----------' -+ ^ | -+ | '-- communication via sockets -+ '--- communication via pipes -+ -+For now, we won't support multiple concurrent -+invocations of the proxy instance, and that -+behavior will be undefined, as this largely -+depends on the capability of the iserv on the -+target to spawn multiple process. Spawning -+multiple threads won't be sufficient, as the -+GHC runtime has global state. -+ -+Also the GHC runtime needs to be able to -+use the linker on the Target to link archives -+and object files. -+ -+-} -+ -+module Main (main) where -+ -+import System.IO -+import GHCi.Message -+import GHCi.Utils -+import GHCi.Signals -+ -+import Remote.Message -+ -+import Network.Socket -+import Data.IORef -+import Control.Monad -+import System.Environment -+import System.Exit -+import Text.Printf -+import GHC.Fingerprint (getFileHash) -+import System.Directory -+import System.FilePath (isAbsolute) -+ -+import Data.Binary -+import qualified Data.ByteString as BS -+ -+dieWithUsage :: IO a -+dieWithUsage = do -+ prog <- getProgName -+ die $ prog ++ ": " ++ msg -+ where -+#if defined(WINDOWS) -+ msg = "usage: iserv [-v]" -+#else -+ msg = "usage: iserv [-v]" -+#endif -+ -+main :: IO () -+main = do -+ args <- getArgs -+ (wfd1, rfd2, host_ip, port, rest) <- -+ case args of -+ arg0:arg1:arg2:arg3:rest -> do -+ let wfd1 = read arg0 -+ rfd2 = read arg1 -+ ip = arg2 -+ port = read arg3 -+ return (wfd1, rfd2, ip, port, rest) -+ _ -> dieWithUsage -+ -+ verbose <- case rest of -+ ["-v"] -> return True -+ [] -> return False -+ _ -> dieWithUsage -+ -+ when verbose $ -+ printf "GHC iserv starting (in: %d; out: %d)\n" -+ (fromIntegral rfd2 :: Int) (fromIntegral wfd1 :: Int) -+ inh <- getGhcHandle rfd2 -+ outh <- getGhcHandle wfd1 -+ installSignalHandlers -+ lo_ref <- newIORef Nothing -+ let in_pipe = Pipe{pipeRead = inh, pipeWrite = outh, pipeLeftovers = lo_ref} -+ -+ when verbose $ -+ putStrLn ("Trying to connect to " ++ host_ip ++ ":" ++ (show port)) -+ out_pipe <- connectTo host_ip port >>= socketToPipe -+ -+ putStrLn "Starting proxy" -+ proxy verbose in_pipe out_pipe -+ -+-- | A hook, to transform outgoing (proxy -> slave) -+-- messages prior to sending them to the slave. -+hook :: Msg -> IO Msg -+hook = return -+ -+-- | Forward a single @THMessage@ from the slave -+-- to ghc, and read back the result from GHC. -+-- -+-- @Message@s go from ghc to the slave. -+-- ghc --- proxy --> slave (@Message@) -+-- @THMessage@s go from the slave to ghc -+-- ghc <-- proxy --- slave (@THMessage@) -+-- -+fwdTHMsg :: (Binary a) => Pipe -> THMessage a -> IO a -+fwdTHMsg local msg = do -+ writePipe local (putTHMessage msg) -+ readPipe local get -+ -+-- | Fowarard a @Message@ call and handle @THMessages@. -+fwdTHCall :: (Binary a) => Bool -> Pipe -> Pipe -> Message a -> IO a -+fwdTHCall verbose local remote msg = do -+ writePipe remote (putMessage msg) -+ -- wait for control instructions -+ loopTH -+ readPipe remote get -+ where -+ loopTH :: IO () -+ loopTH = do -+ THMsg msg' <- readPipe remote getTHMessage -+ when verbose $ -+ putStrLn ("| TH Msg: ghc <- proxy -- slave: " ++ show msg') -+ res <- fwdTHMsg local msg' -+ when verbose $ -+ putStrLn ("| Resp.: ghc -- proxy -> slave: " ++ show res) -+ writePipe remote (put res) -+ case msg' of -+ RunTHDone -> return () -+ _ -> loopTH -+ -+-- | Forwards a @Message@ call, and handle @SlaveMessage@. -+-- Similar to @THMessages@, but @SlaveMessage@ are between -+-- the slave and the proxy, and are not forwarded to ghc. -+-- These message allow the Slave to query the proxy for -+-- files. -+-- -+-- ghc --- proxy --> slave (@Message@) -+-- -+-- proxy <-- slave (@SlaveMessage@) -+-- -+fwdLoadCall :: (Binary a, Show a) => Bool -> Pipe -> Pipe -> Message a -> IO a -+fwdLoadCall verbose _ remote msg = do -+ writePipe remote (putMessage msg) -+ loopLoad -+ readPipe remote get -+ where -+ truncateMsg :: Int -> String -> String -+ truncateMsg n s | length s > n = take n s ++ "..." -+ | otherwise = s -+ reply :: (Binary a, Show a) => a -> IO () -+ reply m = do -+ when verbose $ -+ putStrLn ("| Resp.: proxy -> slave: " -+ ++ truncateMsg 80 (show m)) -+ writePipe remote (put m) -+ loopLoad :: IO () -+ loopLoad = do -+ SlaveMsg msg' <- readPipe remote getSlaveMessage -+ when verbose $ -+ putStrLn ("| Sl Msg: proxy <- slave: " ++ show msg') -+ case msg' of -+ Done -> return () -+ Missing path -> do -+ reply =<< BS.readFile path -+ loopLoad -+ Have path remoteHash -> do -+ localHash <- getFileHash path -+ reply =<< if localHash == remoteHash -+ then return Nothing -+ else Just <$> BS.readFile path -+ loopLoad -+ -+-- | The actual proxy. Conntect local and remote pipe, -+-- and does some message handling. -+proxy :: Bool -> Pipe -> Pipe -> IO () -+proxy verbose local remote = loop -+ where -+ fwdCall :: (Binary a, Show a) => Message a -> IO a -+ fwdCall msg = do -+ writePipe remote (putMessage msg) -+ readPipe remote get -+ -+ -- reply to ghc. -+ reply :: (Show a, Binary a) => a -> IO () -+ reply msg = do -+ when verbose $ -+ putStrLn ("Resp.: ghc <- proxy -- slave: " ++ show msg) -+ writePipe local (put msg) -+ -+ loop = do -+ (Msg msg) <- readPipe local getMessage -+ when verbose $ -+ putStrLn ("Msg: ghc -- proxy -> slave: " ++ show msg) -+ (Msg msg') <- hook (Msg msg) -+ case msg' of -+ -- TH might send some message back to ghc. -+ RunTH{} -> do -+ resp <- fwdTHCall verbose local remote msg' -+ reply resp -+ loop -+ RunModFinalizers{} -> do -+ resp <- fwdTHCall verbose local remote msg' -+ reply resp -+ loop -+ -- Load messages might send some messages back to the proxy, to -+ -- requrest files that are not present on the device. -+ LoadArchive{} -> do -+ resp <- fwdLoadCall verbose local remote msg' -+ reply resp -+ loop -+ LoadObj{} -> do -+ resp <- fwdLoadCall verbose local remote msg' -+ reply resp -+ loop -+ LoadDLL path | isAbsolute path -> do -+ resp <- fwdLoadCall verbose local remote msg' -+ reply resp -+ loop -+ Shutdown{} -> fwdCall msg' >> return () -+ _other -> fwdCall msg' >>= reply >> loop -+ -+ -+connectTo :: String -> PortNumber -> IO Socket -+connectTo host port = do -+ let hints = defaultHints { addrFlags = [AI_NUMERICHOST, AI_NUMERICSERV] -+ , addrSocketType = Stream } -+ addr:_ <- getAddrInfo (Just hints) (Just host) (Just (show port)) -+ sock <- socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr) -+ putStrLn $ "Created socket for " ++ host ++ ":" ++ show port -+ connect sock (addrAddress addr) -+ putStrLn "connected" -+ return sock -+ -+-- | Turn a socket into an unbuffered pipe. -+socketToPipe :: Socket -> IO Pipe -+socketToPipe sock = do -+ hdl <- socketToHandle sock ReadWriteMode -+ hSetBuffering hdl NoBuffering -+ -+ lo_ref <- newIORef Nothing -+ pure Pipe{ pipeRead = hdl, pipeWrite = hdl, pipeLeftovers = lo_ref } -diff --git a/utils/iserv-slave/cabal.project b/utils/iserv-slave/cabal.project -new file mode 100644 -index 0000000000..2e6cd12dc9 ---- /dev/null -+++ b/utils/iserv-slave/cabal.project -@@ -0,0 +1,4 @@ -+packages: . ../../libraries/libiserv -+ -+package libiserv -+ flags: +network -diff --git a/utils/iserv-slave/iserv-slave.cabal b/utils/iserv-slave/iserv-slave.cabal -new file mode 100644 -index 0000000000..7f82f3d125 ---- /dev/null -+++ b/utils/iserv-slave/iserv-slave.cabal -@@ -0,0 +1,20 @@ -+Name: iserv-slave -+Version: 8.4 -+Copyright: XXX -+License: BSD3 -+-- XXX License-File: LICENSE -+Author: XXX -+Maintainer: XXX -+Synopsis: iserv allows GHC to delegate Tempalte Haskell computations -+Description: -+Category: Development -+build-type: Simple -+cabal-version: >=1.10 -+ -+Executable iserv-slave -+ Default-Language: Haskell2010 -+ Main-Is: Cli.hs -+ Hs-Source-Dirs: src -+ Build-Depends: -+ base >= 4 && < 5, -+ libiserv == 8.4 -diff --git a/utils/iserv-slave/src/Cli.hs b/utils/iserv-slave/src/Cli.hs -new file mode 100644 -index 0000000000..8a3a34f9c4 ---- /dev/null -+++ b/utils/iserv-slave/src/Cli.hs -@@ -0,0 +1,30 @@ -+module Main where -+ -+import System.Environment (getProgName, getArgs) -+import System.Exit (die) -+import Remote.Slave (startSlave') -+ -+main :: IO () -+main = getArgs >>= startSlave -+ -+dieWithUsage :: IO a -+dieWithUsage = do -+ prog <- getProgName -+ die $ prog ++ ": " ++ msg -+ where -+ msg = "usage: iserv-slave /path/to/storage PORT [-v]" -+ -+startSlave :: [String] -> IO () -+startSlave args0 -+ | "--help" `elem` args0 = dieWithUsage -+ | otherwise = do -+ (path, port, rest) <- case args0 of -+ arg0:arg1:rest -> return (arg0, read arg1, rest) -+ _ -> dieWithUsage -+ verbose <- case rest of -+ ["-v"] -> return True -+ [] -> return False -+ _ -> dieWithUsage -+ -+ startSlave' verbose path port -+ -diff --git a/utils/iserv/Makefile b/utils/iserv/Makefile -new file mode 100644 -index 0000000000..361985852f ---- /dev/null -+++ b/utils/iserv/Makefile -@@ -0,0 +1,15 @@ -+# ----------------------------------------------------------------------------- -+# -+# (c) 2009 The University of Glasgow -+# -+# This file is part of the GHC build system. -+# -+# To understand how the build system works and how to modify it, see -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Architecture -+# http://ghc.haskell.org/trac/ghc/wiki/Building/Modifying -+# -+# ----------------------------------------------------------------------------- -+ -+dir = utils/iserv -+TOP = ../.. -+include $(TOP)/mk/sub-makefile.mk -diff --git a/utils/iserv/cbits/iservmain.c b/utils/iserv/cbits/iservmain.c -new file mode 100644 -index 0000000000..daefd35251 ---- /dev/null -+++ b/utils/iserv/cbits/iservmain.c -@@ -0,0 +1,17 @@ -+#include "../rts/PosixSource.h" -+#include "Rts.h" -+ -+#include "HsFFI.h" -+ -+int main (int argc, char *argv[]) -+{ -+ RtsConfig conf = defaultRtsConfig; -+ -+ // We never know what symbols GHC will look up in the future, so -+ // we must retain CAFs for running interpreted code. -+ conf.keep_cafs = 1; -+ -+ conf.rts_opts_enabled = RtsOptsAll; -+ extern StgClosure ZCMain_main_closure; -+ hs_main(argc, argv, &ZCMain_main_closure, conf); -+} -diff --git a/iserv/ghc.mk b/utils/iserv/ghc.mk -similarity index 56% -rename from iserv/ghc.mk -rename to utils/iserv/ghc.mk -index c5ca6a524e..194621a85c 100644 ---- a/iserv/ghc.mk -+++ b/utils/iserv/ghc.mk -@@ -10,20 +10,20 @@ - # - # ----------------------------------------------------------------------------- - --iserv_USES_CABAL = YES --iserv_PACKAGE = iserv-bin --iserv_EXECUTABLE = iserv -+utils/iserv_USES_CABAL = YES -+utils/iserv_PACKAGE = iserv -+utils/iserv_EXECUTABLE = iserv - - ifeq "$(GhcDebugged)" "YES" --iserv_stage2_MORE_HC_OPTS += -debug --iserv_stage2_p_MORE_HC_OPTS += -debug --iserv_stage2_dyn_MORE_HC_OPTS += -debug -+utils/iserv_stage2_MORE_HC_OPTS += -debug -+utils/iserv_stage2_p_MORE_HC_OPTS += -debug -+utils/iserv_stage2_dyn_MORE_HC_OPTS += -debug - endif - - ifeq "$(GhcThreaded)" "YES" --iserv_stage2_MORE_HC_OPTS += -threaded --iserv_stage2_p_MORE_HC_OPTS += -threaded --iserv_stage2_dyn_MORE_HC_OPTS += -threaded -+utils/iserv_stage2_MORE_HC_OPTS += -threaded -+utils/iserv_stage2_p_MORE_HC_OPTS += -threaded -+utils/iserv_stage2_dyn_MORE_HC_OPTS += -threaded - endif - - # Add -Wl,--export-dynamic enables GHCi to load dynamic objects that -@@ -34,9 +34,9 @@ ifeq "$(TargetElf)" "YES" - ifneq "$(TargetOS_CPP)" "solaris2" - # The Solaris linker does not support --export-dynamic option. It also - # does not need it since it exports all dynamic symbols by default --iserv_stage2_MORE_HC_OPTS += -optl-Wl,--export-dynamic --iserv_stage2_p_MORE_HC_OPTS += -optl-Wl,--export-dynamic --iserv_stage2_dyn_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+utils/iserv_stage2_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+utils/iserv_stage2_p_MORE_HC_OPTS += -optl-Wl,--export-dynamic -+utils/iserv_stage2_dyn_MORE_HC_OPTS += -optl-Wl,--export-dynamic - endif - endif - -@@ -44,30 +44,30 @@ endif - # program for each way. Note that it's important to do this even for - # the vanilla version, otherwise we get a dynamic executable when - # DYNAMIC_GHC_PROGRAMS=YES. --iserv_stage2_PROGRAM_WAY = v --iserv_stage2_p_PROGRAM_WAY = p --iserv_stage2_dyn_PROGRAM_WAY = dyn -+utils/iserv_stage2_PROGRAM_WAY = v -+utils/iserv_stage2_p_PROGRAM_WAY = p -+utils/iserv_stage2_dyn_PROGRAM_WAY = dyn - --iserv_stage2_PROGNAME = ghc-iserv --iserv_stage2_p_PROGNAME = ghc-iserv-prof --iserv_stage2_dyn_PROGNAME = ghc-iserv-dyn -+utils/iserv_stage2_PROGNAME = ghc-iserv -+utils/iserv_stage2_p_PROGNAME = ghc-iserv-prof -+utils/iserv_stage2_dyn_PROGNAME = ghc-iserv-dyn - --iserv_stage2_MORE_HC_OPTS += -no-hs-main --iserv_stage2_p_MORE_HC_OPTS += -no-hs-main --iserv_stage2_dyn_MORE_HC_OPTS += -no-hs-main -+utils/iserv_stage2_MORE_HC_OPTS += -no-hs-main -+utils/iserv_stage2_p_MORE_HC_OPTS += -no-hs-main -+utils/iserv_stage2_dyn_MORE_HC_OPTS += -no-hs-main - --iserv_stage2_INSTALL = YES --iserv_stage2_p_INSTALL = YES --iserv_stage2_dyn_INSTALL = YES -+utils/iserv_stage2_INSTALL = YES -+utils/iserv_stage2_p_INSTALL = YES -+utils/iserv_stage2_dyn_INSTALL = YES - - # Install in $(libexec), not in $(bindir) --iserv_stage2_TOPDIR = YES --iserv_stage2_p_TOPDIR = YES --iserv_stage2_dyn_TOPDIR = YES -+utils/iserv_stage2_TOPDIR = YES -+utils/iserv_stage2_p_TOPDIR = YES -+utils/iserv_stage2_dyn_TOPDIR = YES - --iserv_stage2_INSTALL_INPLACE = YES --iserv_stage2_p_INSTALL_INPLACE = YES --iserv_stage2_dyn_INSTALL_INPLACE = YES -+utils/iserv_stage2_INSTALL_INPLACE = YES -+utils/iserv_stage2_p_INSTALL_INPLACE = YES -+utils/iserv_stage2_dyn_INSTALL_INPLACE = YES - - ifeq "$(CLEANING)" "YES" - -@@ -97,15 +97,15 @@ endif - endif - - ifeq "$(NEED_iserv)" "YES" --$(eval $(call build-prog,iserv,stage2,1)) -+$(eval $(call build-prog,utils/iserv,stage2,1)) - endif - - ifeq "$(NEED_iserv_p)" "YES" --$(eval $(call build-prog,iserv,stage2_p,1)) -+$(eval $(call build-prog,utils/iserv,stage2_p,1)) - endif - - ifeq "$(NEED_iserv_dyn)" "YES" --$(eval $(call build-prog,iserv,stage2_dyn,1)) -+$(eval $(call build-prog,utils/iserv,stage2_dyn,1)) - endif - - all_ghc_stage2 : $(iserv-stage2_INPLACE) -diff --git a/utils/iserv/iserv.cabal b/utils/iserv/iserv.cabal -new file mode 100644 -index 0000000000..f2a0a41102 ---- /dev/null -+++ b/utils/iserv/iserv.cabal -@@ -0,0 +1,44 @@ -+Name: iserv -+Version: 8.4 -+Copyright: XXX -+License: BSD3 -+-- XXX License-File: LICENSE -+Author: XXX -+Maintainer: XXX -+Synopsis: iserv allows GHC to delegate Tempalte Haskell computations -+Description: -+ GHC can be provided with a path to the iserv binary with -+ @-pgmi=/path/to/iserv-bin@, and will in combination with -+ @-fexternal-interpreter@, compile Template Haskell though the -+ @iserv-bin@ delegate. This is very similar to how ghcjs has been -+ compiling Template Haskell, by spawning a separate delegate (so -+ called runner on the javascript vm) and evaluating the splices -+ there. -+ . -+ To use iserv with cross compilers, please see @libraries/libiserv@ -+ and @utils/iserv-proxy@. -+ -+Category: Development -+build-type: Simple -+cabal-version: >=1.10 -+ -+Executable iserv -+ Default-Language: Haskell2010 -+ ghc-options: -no-hs-main -+ Main-Is: Main.hs -+ C-Sources: cbits/iservmain.c -+ Hs-Source-Dirs: src -+ include-dirs: . -+ Build-Depends: array >= 0.5 && < 0.6, -+ base >= 4 && < 5, -+ binary >= 0.7 && < 0.9, -+ bytestring >= 0.10 && < 0.11, -+ containers >= 0.5 && < 0.6, -+ deepseq >= 1.4 && < 1.5, -+ ghci == 8.4.*, -+ libiserv == 8.4 -+ -+ if os(windows) -+ Cpp-Options: -DWINDOWS -+ else -+ Build-Depends: unix >= 2.7 && < 2.8 -diff --git a/iserv/src/Main.hs b/utils/iserv/src/Main.hs -similarity index 100% -rename from iserv/src/Main.hs -rename to utils/iserv/src/Main.hs diff --git a/nix/patches/ghc/outputtable-assert-8.4.2.patch b/nix/patches/ghc/outputtable-assert-8.4.2.patch deleted file mode 100644 index 95b3b4e9985..00000000000 --- a/nix/patches/ghc/outputtable-assert-8.4.2.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/compiler/typecheck/TcHsSyn.hs b/compiler/typecheck/TcHsSyn.hs -index 8d097f52fb..0cf5d98d44 100644 ---- a/compiler/typecheck/TcHsSyn.hs -+++ b/compiler/typecheck/TcHsSyn.hs -@@ -613,7 +613,7 @@ zonkLExprs env exprs = mapM (zonkLExpr env) exprs - zonkLExpr env expr = wrapLocM (zonkExpr env) expr - - zonkExpr env (HsVar (L l id)) -- = ASSERT2( isNothing (isDataConId_maybe id), ppr id ) -+ = -- ASSERT2( isNothing (isDataConId_maybe id), ppr id ) - return (HsVar (L l (zonkIdOcc env id))) - - zonkExpr _ e@(HsConLikeOut {}) = return e -diff --git a/compiler/utils/Outputable.hs b/compiler/utils/Outputable.hs -index 3050fa1cf1..f31153643a 100644 ---- a/compiler/utils/Outputable.hs -+++ b/compiler/utils/Outputable.hs -@@ -1202,10 +1202,10 @@ warnPprTrace True file line msg x - -- | Panic with an assertation failure, recording the given file and - -- line number. Should typically be accessed with the ASSERT family of macros - assertPprPanic :: HasCallStack => String -> Int -> SDoc -> a --assertPprPanic _file _line msg -+assertPprPanic file line msg - = pprPanic "ASSERT failed!" doc - where -- doc = sep [ msg, callStackDoc ] -+ doc = sep [ text"file", text file <> comma, text "line", int line, msg, callStackDoc ] - - pprDebugAndThen :: DynFlags -> (String -> a) -> SDoc -> SDoc -> a - pprDebugAndThen dflags cont heading pretty_msg diff --git a/nix/patches/ghc/various-8.4.2.patch b/nix/patches/ghc/various-8.4.2.patch deleted file mode 100644 index 145a59ffef9..00000000000 --- a/nix/patches/ghc/various-8.4.2.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 8bed181915..431b467080 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -418,6 +418,10 @@ then - AC_PATH_PROG([DllWrap],[dllwrap]) - AC_PATH_PROG([Windres],[windres]) - AC_PATH_PROG([Genlib],[genlib]) -+else -+ AC_CHECK_TARGET_TOOL([Windres],[windres]) -+ AC_CHECK_TARGET_TOOL([DllWrap],[dllwrap]) -+ AC_CHECK_TARGET_TOOL([OBJDUMP],[objdump]) - fi - - DllWrapCmd="$DllWrap" -diff --git a/libraries/base/cbits/Win32Utils.c b/libraries/base/cbits/Win32Utils.c -index ce7ce97fc0..b33db04c35 100644 ---- a/libraries/base/cbits/Win32Utils.c -+++ b/libraries/base/cbits/Win32Utils.c -@@ -9,6 +9,8 @@ - #include "HsBase.h" - #include - #include -+/* Using Secure APIs */ -+#define MINGW_HAS_SECURE_API 1 - #include - #include - -diff --git a/rts/PathUtils.c b/rts/PathUtils.c -index 1b0b729f07..def3f7e329 100644 ---- a/rts/PathUtils.c -+++ b/rts/PathUtils.c -@@ -7,6 +7,11 @@ - - #include - #include -+#if defined(mingw32_HOST_OS) -+/* Using Secure APIs */ -+#define MINGW_HAS_SECURE_API 1 -+#include -+#endif - - pathchar* pathdup(pathchar *path) - { -diff --git a/rts/win32/OSMem.c b/rts/win32/OSMem.c -index c67b95be82..534cd15fa6 100644 ---- a/rts/win32/OSMem.c -+++ b/rts/win32/OSMem.c -@@ -458,7 +458,7 @@ void *osReserveHeapMemory (void *startAddress, W_ *len) - sysErrorBelch( - "osReserveHeapMemory: VirtualAlloc MEM_RESERVE %llu bytes \ - at address %p bytes failed", -- len + MBLOCK_SIZE, startAddress); -+ *len + MBLOCK_SIZE, startAddress); - } - stg_exit(EXIT_FAILURE); - } diff --git a/nix/patches/streaming-commons-0.2.0.0.patch b/nix/patches/streaming-commons-0.2.0.0.patch deleted file mode 100644 index dd907793383..00000000000 --- a/nix/patches/streaming-commons-0.2.0.0.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/System/Win32File.hsc b/System/Win32File.hsc -index a524c77..8e8071d 100644 ---- a/System/Win32File.hsc -+++ b/System/Win32File.hsc -@@ -31,8 +31,8 @@ import Data.ByteString.Lazy.Internal (defaultChunkSize) - - - #include --#include --#include -+#include -+#include - #include - - newtype OFlag = OFlag CInt diff --git a/nix/patches/x509-system-1.6.6.patch b/nix/patches/x509-system-1.6.6.patch deleted file mode 100644 index df39af5f893..00000000000 --- a/nix/patches/x509-system-1.6.6.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/x509-system.cabal b/x509-system.cabal -index 95a21a1..8b23b3d 100644 ---- a/x509-system.cabal -+++ b/x509-system.cabal -@@ -32,7 +32,7 @@ Library - if os(windows) - cpp-options: -DWINDOWS - Build-Depends: Win32, asn1-encoding -- extra-libraries: Crypt32 -+ extra-libraries: crypt32 - Exposed-modules: System.X509.Win32 - if os(OSX) - cpp-options: -DMACOSX diff --git a/nix/regenerate.sh b/nix/regenerate.sh index 7d9a5236e69..76fdf89308b 100755 --- a/nix/regenerate.sh +++ b/nix/regenerate.sh @@ -3,4 +3,4 @@ set -euo pipefail -exec $(nix-build `dirname $0`/iohk-common.nix -A nix-tools.regeneratePackages --no-out-link --option substituters "https://hydra.iohk.io https://cache.nixos.org" --option trusted-substituters "" --option trusted-public-keys "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=") +exec "$(nix-build "$(dirname "$0")/iohk-common.nix" -A nix-tools.regeneratePackages --no-out-link --option substituters "https://hydra.iohk.io https://cache.nixos.org" --option trusted-substituters "" --option trusted-public-keys "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=")" diff --git a/nix/remote-iserv.nix b/nix/remote-iserv.nix deleted file mode 100644 index 963067a2355..00000000000 --- a/nix/remote-iserv.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ system -, compiler -, flags -, pkgs -, hsPkgs -, pkgconfPkgs -, ... }: - { - flags = {}; - package = { - specVersion = "1.10"; - identifier = { - name = "remote-iserv"; - version = "8.5"; - }; - license = "BSD-3-Clause"; - copyright = "XXX"; - maintainer = "XXX"; - author = "XXX"; - homepage = ""; - url = ""; - synopsis = "iserv allows GHC to delegate Tempalte Haskell computations"; - description = ""; - buildType = "Simple"; - }; - components = { - exes = { - "remote-iserv" = { - depends = [ - (hsPkgs.base) - (hsPkgs.libiserv) - ]; - }; - }; - }; - } // rec { src = pkgs.fetchurl { url = https://s3.eu-central-1.amazonaws.com/ci-static/ghc-cross-windows/remote-iserv-8.4.4.tar.gz; sha256 = "0imxhydx5igk12s7b5iv3fzkwflqk3d0byfil8h52ha653b2xzfn"; }; } diff --git a/nix/rocksdb-prebuilt.nix b/nix/rocksdb-prebuilt.nix deleted file mode 100644 index c7fd6c08df7..00000000000 --- a/nix/rocksdb-prebuilt.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, fetchurl, unzip }: -stdenv.mkDerivation { - name = "rocksdb-prebuilt"; - src = fetchurl { - url = "https://s3.eu-central-1.amazonaws.com/ci-static/serokell-rocksdb-haskell-325427fc709183c8fdf777ad5ea09f8d92bf8585.zip"; - sha256 = "11w6nbg39y7n3j7d5p4mvls3h5sbld71nx8yxxrckh8ak8yr6kwp"; - }; - nativeBuildInputs = [ unzip ]; - buildInputs = [ unzip ]; - - unpackPhase = '' - unzip $src - ''; - dontBuild = true; - installPhase = '' - install -d $out/lib - # dlls - for dll in $(find . -name "*.dll"); do - install -C -m 755 $dll $out/lib - done - # libs - for lib in $(find . -name "*.lib"); do - install -C -m 755 $lib $out/lib - done - # archives - for archive in $(find . -name "*.a"); do - install -C -m 755 $archive $out/lib - done - ''; -} diff --git a/nix/scripts.nix b/nix/scripts.nix index 1d742b21989..dfdec961afb 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -7,8 +7,10 @@ let cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; - cardanoExplorer = nixTools.nix-tools.exes.cardano-explorer; + cardanoExplorer = nixTools.nix-tools.exes.cardano-sl-explorer; cardanoTools = nixTools.nix-tools.exes.cardano-sl-tools; + cardanoCluster = nixTools.nix-tools.exes.cardano-sl-cluster; + cardanoNode = nixTools.nix-tools.exes.cardano-sl-node; pkgs = commonLib.pkgs; connect = let walletConfigFile = ../custom-wallet-config.nix; @@ -25,4 +27,18 @@ in { explorer = connect { inherit environment; executable = "explorer"; }; }); + demoCluster = pkgs.callPackage ./launch/demo-cluster { + inherit cardanoConfig cardanoWallet cardanoCluster; + }; + dockerImages = let + build = args: pkgs.callPackage ./docker.nix ({ + inherit cardanoNode cardanoConfig connect; + } // args); + makeDockerImage = { environment, ...}: + build { inherit environment; } // { + wallet = build { inherit environment; type = "wallet"; }; + explorer = build { inherit environment; type = "explorer"; }; + node = build { inherit environment; type = "node"; }; + }; + in commonLib.forEnvironments makeDockerImage; } diff --git a/nix/stack-shell.nix b/nix/stack-shell.nix deleted file mode 100644 index 91f686a1c2f..00000000000 --- a/nix/stack-shell.nix +++ /dev/null @@ -1,22 +0,0 @@ -# This is the derivation used by "stack --nix". -# It provides the system dependencies required for a stack build. -{ system ? builtins.currentSystem -, config ? {} -, iohkPkgs ? import ./.. {inherit config system; } -, pkgs ? iohkPkgs.pkgs -}: -with pkgs; - -haskell.lib.buildStackProject { - inherit (haskell.packages.ghc844) ghc; - name = "cardano-sl-stack-env"; - - buildInputs = [ - zlib openssh autoreconfHook openssl - gmp rocksdb git bsdiff ncurses lzma - perl bash - ] ++ (lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa CoreServices libcxx libiconv ])); - - phases = ["nobuildPhase"]; - nobuildPhase = "mkdir -p $out"; -} diff --git a/nix/stack2nix.nix b/nix/stack2nix.nix deleted file mode 100644 index 19829800247..00000000000 --- a/nix/stack2nix.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, fetchFromGitHub }: - -import (fetchFromGitHub { - owner = "input-output-hk"; - repo = "stack2nix"; - rev = "60c36985f07ab87ed01a8a68b6978aba58c8afbd"; - sha256 = "13swg8wxsvy91gkbqs0j661kk4gz2mhqbjghwhhsjqqpwxp2wlns"; -}) { inherit pkgs; } diff --git a/nix/tests.nix b/nix/tests.nix new file mode 100644 index 00000000000..3c74e9fdb41 --- /dev/null +++ b/nix/tests.nix @@ -0,0 +1,12 @@ +{ commonLib, src }: +let + pkgs = commonLib.pkgs; +in { + shellcheck = pkgs.callPackage commonLib.tests.shellcheck { inherit src; }; + hlint = pkgs.callPackage commonLib.tests.hlint { + inherit src; + }; + stylishHaskell = pkgs.callPackage commonLib.tests.stylishHaskell { + inherit src; + }; +} diff --git a/nix/update-iohk-nix.sh b/nix/update-iohk-nix.sh index 0c9d1e08833..66cc202cc01 100755 --- a/nix/update-iohk-nix.sh +++ b/nix/update-iohk-nix.sh @@ -3,7 +3,7 @@ set -euo pipefail -NIX_DIR=`dirname $0` +NIX_DIR=$(dirname "$0") nix-prefetch-git https://github.com/input-output-hk/iohk-nix \ - > $NIX_DIR/iohk-nix-src.json + > "$NIX_DIR/iohk-nix-src.json" diff --git a/nixpkgs-src.json b/nixpkgs-src.json deleted file mode 100644 index cd9bcc47262..00000000000 --- a/nixpkgs-src.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "url": "https://github.com/input-output-hk/nixpkgs", - "rev": "3ff97c12fa19a197eb8ddee634ff2f3d4f02ad31", - "sha256": "125sy7118bmxprxlbyg1scxmjpq092xlj207xzy7l23j6arw8sbx", - "fetchSubmodules": false -} diff --git a/node-ipc/shell.nix b/node-ipc/shell.nix index 3a548a221be..975fb124266 100644 --- a/node-ipc/shell.nix +++ b/node-ipc/shell.nix @@ -1,8 +1,9 @@ -{ iohkPkgs ? import ../. { } -, pkgs ? iohkPkgs.pkgs +{ commonLib ? import ../lib.nix +, iohkPkgs ? import ../. {} +, pkgs ? commonLib.pkgs }: pkgs.mkShell { name = "node-ipc-env"; - buildInputs = [ pkgs.nodejs iohkPkgs.cardanoPackages.cardano-wallet ]; + buildInputs = [ pkgs.nodejs iohkPkgs.nix-tools.exes.cardano-wallet ]; } diff --git a/scripts/launch/connect-to-cluster/default.nix b/scripts/launch/connect-to-cluster/default.nix deleted file mode 100755 index 22e2fe4c3f6..00000000000 --- a/scripts/launch/connect-to-cluster/default.nix +++ /dev/null @@ -1,181 +0,0 @@ -with import ../../../lib.nix; - -{ stdenv, writeText, writeScript, curl - -, cardano-wallet-static, cardano-sl-explorer-static, cardano-sl-tools-static -, cardano-sl-config - -## options! -, environment ? "mainnet" -, stateDir ? maybeEnv "CARDANO_STATE_DIR" "state-${executable}-${environment}" -, executable ? "wallet" -, topologyFile ? null -, walletListen ? "127.0.0.1:8090" -, walletDocListen ? "127.0.0.1:8091" -, ekgListen ? "127.0.0.1:8000" -, ghcRuntimeArgs ? "-N2 -qg -A1m -I0 -T" -, additionalNodeArgs ? "" -, confFile ? null -, confKey ? null -, relays ? null -, debug ? false -, disableClientAuth ? false -, useLegacyDataLayer ? false -, extraParams ? "" -, useStackBinaries ? false -, tlsConfig ? {} -}: - -# TODO: DEVOPS-159: relays DNS should be more predictable -# TODO: DEVOPS-499: developer clusters based on runtime JSON -# TODO: DEVOPS-462: exchanges should use a different topology - -let - ifDebug = optionalString (debug); - ifDisableClientAuth = optionalString (disableClientAuth); - walletDataLayer = if useLegacyDataLayer then "--legacy-wallet" else ""; - env = if environment == "override" - then { inherit relays confKey confFile; } - else environments.${environment}; - executables = { - wallet = if useStackBinaries then "stack exec -- cardano-node" else "${cardano-wallet-static}/bin/cardano-node"; - explorer = if useStackBinaries then "stack exec -- cardano-explorer" else "${cardano-sl-explorer-static}/bin/cardano-explorer"; - x509gen = if useStackBinaries then "stack exec -- cardano-x509-certificates" else "${cardano-sl-tools-static}/bin/cardano-x509-certificates"; - }; - ifWallet = optionalString (executable == "wallet"); - - topologyFileDefault = writeText "topology-${environment}" '' - wallet: - relays: [[{ host: ${env.relays} }]] - valency: 1 - fallbacks: 7 - ''; - configurationArgs = concatStringsSep " " [ - "--configuration-file ${env.confFile or "${cardano-sl-config}/lib/configuration.yaml"}" - "--configuration-key ${env.confKey}" - ]; - - curlScript = writeScript "curl-wallet-${environment}" '' - #!${stdenv.shell} - - request_path=$1 - shift - - if [ -z "$request_path" ]; then - >&2 cat < pre-stylish.diff - find . -type f -not -path '.git' -not -path '*.stack-work*' -name "*.hs" -not -name 'HLint.hs' -exec stylish-haskell -i {} \; - git diff > post-stylish.diff - diff pre-stylish.diff post-stylish.diff > /dev/null - if [ $? != 0 ] - then - echo "Changes by stylish have been made. Please commit them." - else - echo "No stylish changes were made." - fi - rm pre-stylish.diff post-stylish.diff - exit - ''; - }; - - # Writes out a cabal new-freeze file containing the exact same - # dependency versions as are provided by this shell. - cabalProjectFreeze = let - contents = '' - -- This file is automatically generated from stack.yaml. - constraints: ${constraints} - ''; - constraints = lib.concatMapStringsSep ",\n " - makeConstraint (getCardanoSLDeps iohkPkgs.haskellPackages); - makeConstraint = dep: "${dep.pname} ==${dep.version}"; - in - pkgs.writeText "cabal.project.freeze" contents; - - # Environments for each cardano-sl package with nix-built dependencies. - # These are useful if using cabal (old-build) and only working on a single package. - packageShells = mapAttrs (_: drv: drv.env) - (filterAttrs (name: _: isCardanoSL name) iohkPkgs.haskellPackages); - -in shell // packageShells // { - inherit fixStylishHaskell cabalProjectFreeze; -} From 15d288e5fac7303fd603dd0bf49c056269f5ab5d Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 13:38:25 -0400 Subject: [PATCH 10/30] add stuff to release.nix --- release.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/release.nix b/release.nix index c84417f93a3..df37e54cb5c 100644 --- a/release.nix +++ b/release.nix @@ -1,6 +1,9 @@ let commonLib = import ./lib.nix; - default = import ./default.nix {}; + default = import ./. {}; in { - wallet = default.connectScripts.mainnet.wallet; + connectScripts = default.connectScripts; + demoCluster = default.demoCluster; + dockerImages = default.dockerImages; + daedalus-bridge = default.daedalus-bridge; } From 21be7b18db8e78befb12aec2172eb19be37878be Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 14:14:08 -0400 Subject: [PATCH 11/30] fix buildkite jobs --- .buildkite/pipeline.yml | 8 ++++---- explorer/frontend/nix/shell.nix | 4 ++-- explorer/frontend/shell.nix | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 5099340d1e8..319ac587224 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,11 +1,11 @@ steps: - - label: 'stack2nix' - command: 'scripts/check-stack2nix.sh' + - label: Check Hydra evaluation of release.nix + command: 'nix-build -A check-hydra lib.nix -o check-hydra.sh && ./check-hydra.sh' agents: system: x86_64-linux - - label: 'release.nix' - command: 'scripts/ci/check-hydra.sh' + - label: Check auto-generated Nix + command: 'nix-build -A check-nix-tools lib.nix -o check-nix-tools.sh && ./check-nix-tools.sh' agents: system: x86_64-linux diff --git a/explorer/frontend/nix/shell.nix b/explorer/frontend/nix/shell.nix index 5caeb4b8f5f..5174aa46bad 100644 --- a/explorer/frontend/nix/shell.nix +++ b/explorer/frontend/nix/shell.nix @@ -3,10 +3,10 @@ let in { system ? builtins.currentSystem , config ? {} -, pkgs ? (import (localLib.fetchNixPkgs) { inherit system config; }) +, pkgs ? (import (localLib.nixpkgs) { inherit system config; }) }: -let +let ghc = pkgs.haskellPackages.ghcWithPackages (ps: [ps.turtle ps.universum]); in diff --git a/explorer/frontend/shell.nix b/explorer/frontend/shell.nix index b1a4942794a..99c75350b20 100644 --- a/explorer/frontend/shell.nix +++ b/explorer/frontend/shell.nix @@ -2,7 +2,7 @@ let cardanoPkgs = import ../.. args; - frontend = cardanoPkgs.cardano-sl-explorer-frontend; + frontend = nix-tools.exes.cardano-sl-explorer-frontend; in # fixme: cardano-sl-explorer source is not filtered enough, so From 1b38362f9c746474d3be5a6e036036df386f32d0 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 14:39:57 -0400 Subject: [PATCH 12/30] skeleton release.nix --- release.nix | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/release.nix b/release.nix index df37e54cb5c..38b1a2eb66d 100644 --- a/release.nix +++ b/release.nix @@ -1,9 +1,33 @@ let commonLib = import ./lib.nix; default = import ./. {}; -in { - connectScripts = default.connectScripts; - demoCluster = default.demoCluster; - dockerImages = default.dockerImages; - daedalus-bridge = default.daedalus-bridge; -} + disabled = []; +in { cardano-sl ? { outPath = ./.; rev = "abcdef"; }, ... }@args: +commonLib.pkgs.lib.mapAttrsRecursiveCond +(as: !(as ? "type" && as.type == "derivation")) +(path: v: if (builtins.elem path disabled) then null else v) +(commonLib.nix-tools.release-nix { + _this = cardano-sl; + package-set-path = ./nix/nix-tools.nix; + packages = [ + "cardano-sl" + "cardano-sl-auxx" + "cardano-sl-chain" + "cardano-sl-core" + "cardano-sl-crypto" + "cardano-sl-db" + "cardano-sl-generator" + "cardano-sl-infra" + "cardano-sl-networking" + "cardano-sl-tools" + "cardano-sl-util" + "cardano-sl-x509" + "cardano-wallet" + ]; + extraBuilds = { + }; + required-targets = jobs: [ + jobs.nix-tools.exes.cardano-wallet.x86_64-linux + jobs.nix-tools.exes.cardano-wallet.x86_64-darwin + ]; +} (builtins.removeAttrs args ["cardano-sl"])) From b1221dbbbb708c14ebd52e8684edcebe05c729c7 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 15:05:51 -0400 Subject: [PATCH 13/30] add tests to release.nix --- default.nix | 2 +- nix/tests.nix | 6 +++++- nix/tests/swaggerSchemaValidation.nix | 13 +++++++++++++ {scripts/test => nix/tests}/yamlValidation.nix | 0 release.nix | 1 + 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 nix/tests/swaggerSchemaValidation.nix rename {scripts/test => nix/tests}/yamlValidation.nix (100%) diff --git a/default.nix b/default.nix index d331df9e701..ea2060ba29e 100644 --- a/default.nix +++ b/default.nix @@ -51,7 +51,7 @@ let inherit commonLib nixTools customConfig cardanoConfig; }; tests = import ./nix/tests.nix { - inherit commonLib src; + inherit commonLib src nixTools; }; daedalus-bridge = pkgs.callPackage ./nix/daedalus-bridge.nix { inherit nixTools cardanoConfig; diff --git a/nix/tests.nix b/nix/tests.nix index 3c74e9fdb41..dfe5635e0d0 100644 --- a/nix/tests.nix +++ b/nix/tests.nix @@ -1,6 +1,8 @@ -{ commonLib, src }: +{ commonLib, src, nixTools }: let pkgs = commonLib.pkgs; + cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; + validateJson = pkgs.callPackage ../tools/src/validate-json {}; in { shellcheck = pkgs.callPackage commonLib.tests.shellcheck { inherit src; }; hlint = pkgs.callPackage commonLib.tests.hlint { @@ -9,4 +11,6 @@ in { stylishHaskell = pkgs.callPackage commonLib.tests.stylishHaskell { inherit src; }; + #yamlValidation = pkgs.callPackage ./tests/yamlValidation.nix {}; + swaggerSchemaValidation = pkgs.callPackage ./tests/swaggerSchemaValidation.nix { inherit cardanoWallet validateJson; }; } diff --git a/nix/tests/swaggerSchemaValidation.nix b/nix/tests/swaggerSchemaValidation.nix new file mode 100644 index 00000000000..999638a4bf1 --- /dev/null +++ b/nix/tests/swaggerSchemaValidation.nix @@ -0,0 +1,13 @@ +{ writeScript, cardanoWallet, validateJson }: + +let + generate-swagger-file = "${cardanoWallet}/bin/cardano-generate-swagger-file"; + validate-json = "${validateJson}/bin/validate_json"; + schema = ./../../tools/src/validate-json/swagger-meta-2.0.json; +in writeScript "validate-swagger-schema" '' + ${generate-swagger-file} --target wallet@v1 --output-file swagger.v1.json + ${validate-json} --schema ${schema} swagger.v1.json + EXIT_STATUS=$? + rm -f swagger.*.json + exit $EXIT_STATUS +'' diff --git a/scripts/test/yamlValidation.nix b/nix/tests/yamlValidation.nix similarity index 100% rename from scripts/test/yamlValidation.nix rename to nix/tests/yamlValidation.nix diff --git a/release.nix b/release.nix index 38b1a2eb66d..21d9a2bbd01 100644 --- a/release.nix +++ b/release.nix @@ -25,6 +25,7 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-wallet" ]; extraBuilds = { + inherit (default) tests; }; required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux From 0da8c148d484f633e06e4d6ec41303515700a862 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 15:17:46 -0400 Subject: [PATCH 14/30] fix tests --- nix/tests.nix | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/nix/tests.nix b/nix/tests.nix index dfe5635e0d0..cd0cb76efe3 100644 --- a/nix/tests.nix +++ b/nix/tests.nix @@ -2,14 +2,34 @@ let pkgs = commonLib.pkgs; cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; + stylish-haskell = nixTools.nix-tools.exes.stylish-haskell; validateJson = pkgs.callPackage ../tools/src/validate-json {}; in { shellcheck = pkgs.callPackage commonLib.tests.shellcheck { inherit src; }; hlint = pkgs.callPackage commonLib.tests.hlint { inherit src; + projects = [ + "util" + "binary" + "crypto" + "core" + "db" + "chain" + "infra" + "node" + "tools" + "client" + "generator" + "auxx" + "explorer" + "wallet" + "cluster" + "mnemonic" + "x509" + ]; }; stylishHaskell = pkgs.callPackage commonLib.tests.stylishHaskell { - inherit src; + inherit src stylish-haskell; }; #yamlValidation = pkgs.callPackage ./tests/yamlValidation.nix {}; swaggerSchemaValidation = pkgs.callPackage ./tests/swaggerSchemaValidation.nix { inherit cardanoWallet validateJson; }; From bdf3a300ceea7c86ab43be509076ca15bf406200 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 15:28:20 -0400 Subject: [PATCH 15/30] make tests required --- release.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/release.nix b/release.nix index 21d9a2bbd01..86be7adb4c8 100644 --- a/release.nix +++ b/release.nix @@ -30,5 +30,6 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux jobs.nix-tools.exes.cardano-wallet.x86_64-darwin + (builtins.attrValues jobs.tests) ]; } (builtins.removeAttrs args ["cardano-sl"])) From 9c87f3dfe7a8334db93cd4cf85fda4a56ce84366 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Tue, 9 Jul 2019 23:45:51 -0400 Subject: [PATCH 16/30] add proposalGui to connectScripts --- nix/launch/proposal-gui/default.nix | 60 +++++++++++++++++++++++++++++ nix/pkgs.nix | 2 +- nix/scripts.nix | 4 ++ 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100755 nix/launch/proposal-gui/default.nix diff --git a/nix/launch/proposal-gui/default.nix b/nix/launch/proposal-gui/default.nix new file mode 100755 index 00000000000..069cb89806d --- /dev/null +++ b/nix/launch/proposal-gui/default.nix @@ -0,0 +1,60 @@ +with import ../../../lib.nix; + +{ stdenv, writeText, writeScript, curl +, scriptRunner +, cardanoConfig + +## options! +, environment ? "mainnet" +, stateDir ? maybeEnv "CARDANO_STATE_DIR" "state-proposal-gui-${environment}" +, topologyFile ? null +, confFile ? null +, confKey ? null +, relays ? null +, extraParams ? "" +}: + +# TODO: DEVOPS-159: relays DNS should be more predictable +# TODO: DEVOPS-499: developer clusters based on runtime JSON +# TODO: DEVOPS-462: exchanges should use a different topology + +let + env = if environment == "override" + then { inherit relays confKey confFile; } + else environments.${environment}; + topologyFileDefault = writeText "topology-${environment}" '' + wallet: + relays: [[{ host: ${env.relays} }]] + valency: 1 + fallbacks: 7 + ''; + configurationArgs = concatStringsSep " " [ + "--configuration-file ${env.confFile or "${cardanoConfig}/lib/configuration.yaml"}" + "--configuration-key ${env.confKey}" + ]; + +in writeScript "proposal-gui-${environment}" '' + #!${stdenv.shell} + + set -euo pipefail + + if [[ "''${1-}" == "--delete-state" ]]; then + echo "Deleting ${stateDir} ... " + rm -Rf ${stateDir} + shift + fi + + echo "Keeping state in ${stateDir}" + mkdir -pv ${stateDir} + pushd ${stateDir} + + echo "Launching a proposal gui connected to '${environment}' ..." + SCRIPT=none ${scriptRunner}/bin/testcases \ + ${configurationArgs} \ + --log-console-off \ + --db-path ${stateDir}/db \ + --keyfile ${stateDir}/secret.key \ + --log-config ${cardanoConfig}/log-configs/connect-to-cluster.yaml \ + --logs-prefix logs \ + --topology "${if topologyFile != null then topologyFile else topologyFileDefault}" \ +'' diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 31b9b0d3209..0981c90dca6 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -33,7 +33,7 @@ let # does not require any messing with cabal files. nonReinstallablePkgs = [ "rts" "ghc" "ghc-prim" "integer-gmp" "integer-simple" "base" - "array" "deepseq" "pretty" "ghc-boot-th" "template-haskell" "ghc-heap" ]; + "array" "deepseq" "pretty" "ghc-boot-th" "template-haskell" "ghc-heap" ]; doHaddock = false; doExactConfig = true; } diff --git a/nix/scripts.nix b/nix/scripts.nix index dfdec961afb..a835c4dcf1c 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -11,6 +11,7 @@ let cardanoTools = nixTools.nix-tools.exes.cardano-sl-tools; cardanoCluster = nixTools.nix-tools.exes.cardano-sl-cluster; cardanoNode = nixTools.nix-tools.exes.cardano-sl-node; + scriptRunner = nixTools.nix-tools.exes.cardano-sl-script-runner; pkgs = commonLib.pkgs; connect = let walletConfigFile = ../custom-wallet-config.nix; @@ -25,6 +26,9 @@ in { { wallet = connect { inherit environment; }; explorer = connect { inherit environment; executable = "explorer"; }; + proposalGui = pkgs.callPackage ./launch/proposal-gui { + inherit cardanoConfig scriptRunner; + }; }); demoCluster = pkgs.callPackage ./launch/demo-cluster { From 47508cb4e5922cc98504368dedd17faf570e1a21 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Wed, 10 Jul 2019 10:57:11 -0400 Subject: [PATCH 17/30] update check-hydra to use iohk-nix check hydra --- scripts/ci/check-hydra.sh | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/scripts/ci/check-hydra.sh b/scripts/ci/check-hydra.sh index 55b76cc4c18..55d669f38af 100755 --- a/scripts/ci/check-hydra.sh +++ b/scripts/ci/check-hydra.sh @@ -1,31 +1,3 @@ #!/usr/bin/env nix-shell -#!nix-shell -p "(jq.overrideAttrs (drv: { doCheck = false; }))" -i bash - -nix-build https://github.com/NixOS/nixpkgs/archive/09195057114a0a8d112c847a9a8f52957420857d.tar.gz -A hydra -echo '~~~ Evaluating release.nix' -command time --format '%e' -o eval-time.txt \ - ./result/bin/hydra-eval-jobs \ - --option allowed-uris "https://github.com/NixOS https://github.com/input-output-hk" \ - -I . release.nix > eval.json -EVAL_EXIT_CODE="$?" -if [ "$EVAL_EXIT_CODE" != 0 ] -then - rm eval.json eval-time.txt - echo -e "\\e[31;1mERROR: Failed to evaluate release.nix\\e[0m" - exit 1 -fi -EVAL_TIME=$(cat eval-time.txt) -jq . < eval.json -ERRORS=$(jq -r 'map_values(.error)|to_entries[]|select(.value)|@text "\(.key): \(.value)"' < eval.json) -NUM_ERRORS=$(jq -r '[ map_values(.error)|to_entries[]|select(.value) ] |length' < eval.json) -rm eval.json eval-time.txt - -if [ "$NUM_ERRORS" != 0 ] -then - echo -e "\\e[31;1mERROR: evaluation completed in $EVAL_TIME seconds with $NUM_ERRORS errors\\e[0m" - echo "$ERRORS" - exit 1 -else - echo -e "\\e[32;1mOK: evaluation completed in $EVAL_TIME seconds with no errors\\e[0m" - exit 0 -fi +#!nix-shell -p nix -i bash +eval $(nix-build -A check-hydra lib.nix --no-out-link) From 72117939a187be49f9658dea1db956a911bf698d Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Wed, 10 Jul 2019 17:36:48 -0300 Subject: [PATCH 18/30] fix tests and connect scripts to use iohk-nix --- default.nix | 1 - nix/.stack.nix/default.nix | 1 + nix/.stack.nix/yaml-validation.nix | 31 ++++++++++++++ nix/docker.nix | 4 +- nix/launch/connect-to-cluster/default.nix | 8 ++-- nix/launch/demo-cluster/default.nix | 8 ++-- .../{proposal-gui => proposal-ui}/default.nix | 12 +++--- nix/pkgs.nix | 4 +- nix/scripts.nix | 29 ++++++++------ nix/tests.nix | 6 +-- nix/tests/yamlValidation.nix | 40 ++----------------- release.nix | 2 +- scripts/ci/check-hydra.sh | 6 +-- scripts/launch/demo-nix.sh | 2 +- stack.yaml | 1 + yaml-validation/Main.hs | 34 ++++++++++++++++ yaml-validation/yaml-validation.cabal | 14 +++++++ 17 files changed, 127 insertions(+), 76 deletions(-) create mode 100644 nix/.stack.nix/yaml-validation.nix rename nix/launch/{proposal-gui => proposal-ui}/default.nix (83%) create mode 100644 yaml-validation/Main.hs create mode 100644 yaml-validation/yaml-validation.cabal diff --git a/default.nix b/default.nix index ea2060ba29e..806b46ff78c 100644 --- a/default.nix +++ b/default.nix @@ -56,7 +56,6 @@ let daedalus-bridge = pkgs.callPackage ./nix/daedalus-bridge.nix { inherit nixTools cardanoConfig; }; - #tests = import ./nix/nixos/tests { inherit (commonLib) pkgs; }; in { inherit daedalus-bridge tests; inherit (nixTools) nix-tools; diff --git a/nix/.stack.nix/default.nix b/nix/.stack.nix/default.nix index b6bb51d9cc6..bda5115222c 100644 --- a/nix/.stack.nix/default.nix +++ b/nix/.stack.nix/default.nix @@ -63,6 +63,7 @@ cardano-sl-x509 = ./cardano-sl-x509.nix; cardano-sl-cluster = ./cardano-sl-cluster.nix; cardano-sl-mnemonic = ./cardano-sl-mnemonic.nix; + yaml-validation = ./yaml-validation.nix; cardano-report-server = ./cardano-report-server.nix; cardano-crypto = ./cardano-crypto.nix; ip = ./ip.nix; diff --git a/nix/.stack.nix/yaml-validation.nix b/nix/.stack.nix/yaml-validation.nix new file mode 100644 index 00000000000..dde93f148fc --- /dev/null +++ b/nix/.stack.nix/yaml-validation.nix @@ -0,0 +1,31 @@ +{ system, compiler, flags, pkgs, hsPkgs, pkgconfPkgs, ... }: + { + flags = {}; + package = { + specVersion = "1.10"; + identifier = { name = "yaml-validation"; version = "0.1"; }; + license = "NONE"; + copyright = ""; + maintainer = ""; + author = ""; + homepage = ""; + url = ""; + synopsis = ""; + description = ""; + buildType = "Simple"; + }; + components = { + exes = { + "yamlValidation" = { + depends = [ + (hsPkgs.base) + (hsPkgs.cardano-sl-util) + (hsPkgs.cardano-sl-infra) + (hsPkgs.split) + (hsPkgs.yaml) + (hsPkgs.exceptions) + ]; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../.././yaml-validation; } \ No newline at end of file diff --git a/nix/docker.nix b/nix/docker.nix index d038e174796..cd691a20edd 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -1,7 +1,7 @@ { writeScriptBin, dockerTools , glibcLocales, iana-etc, openssl, bashInteractive, coreutils, utillinux, iproute, iputils, curl, socat -, cardanoNode, cardanoConfig +, cardano-node-simple, cardanoConfig , environment ? "mainnet" , type ? null @@ -49,7 +49,7 @@ let cd /state node_args="--db-path /state/db --rebuild-db --listen 0.0.0.0:3000 --json-log /state/logs/node.json --logs-prefix /state/logs --log-config /state/logs/log-config-node.yaml --metrics +RTS -N2 -qg -A1m -I0 -T -RTS --configuration-file ${cardanoConfig}/lib/configuration.yaml --configuration-key ${confKey}" - exec ${cardanoNode}/bin/cardano-node-simple $node_args "$@" + exec ${cardano-node-simple}/bin/cardano-node-simple $node_args "$@" '') ]; diff --git a/nix/launch/connect-to-cluster/default.nix b/nix/launch/connect-to-cluster/default.nix index 1241f890a96..5d06449710f 100755 --- a/nix/launch/connect-to-cluster/default.nix +++ b/nix/launch/connect-to-cluster/default.nix @@ -2,7 +2,7 @@ with import ../../../lib.nix; { stdenv, writeText, writeScript, curl -, cardanoWallet, cardanoExplorer, cardanoTools +, cardano-node, cardano-explorer, cardano-x509-certificates , cardanoConfig ## options! @@ -38,9 +38,9 @@ let then { inherit relays confKey confFile; } else environments.${environment}; executables = { - wallet = "${cardanoWallet}/bin/cardano-node"; - explorer = "${cardanoExplorer}/bin/cardano-explorer"; - x509gen = "${cardanoTools}/bin/cardano-x509-certificates"; + wallet = "${cardano-node}/bin/cardano-node"; + explorer = "${cardano-explorer}/bin/cardano-explorer"; + x509gen = "${cardano-x509-certificates}/bin/cardano-x509-certificates"; }; ifWallet = optionalString (executable == "wallet"); diff --git a/nix/launch/demo-cluster/default.nix b/nix/launch/demo-cluster/default.nix index a64c519041a..a0330386929 100755 --- a/nix/launch/demo-cluster/default.nix +++ b/nix/launch/demo-cluster/default.nix @@ -3,7 +3,7 @@ with import ../../../lib.nix; { stdenv, runCommand, writeText, writeScript , jq, coreutils, curl, gnused, openssl -, cardanoCluster, cardanoConfig, cardanoWallet +, cardano-sl-cluster-demo, cardanoConfig, cardano-node, cardano-sl-cluster-prepare-environment ## lots of options! , stateDir ? maybeEnv "CARDANO_STATE_DIR" "./state-demo" @@ -23,7 +23,7 @@ with import ../../../lib.nix; }: let - cardanoDeps = [ cardanoCluster cardanoWallet ]; + cardanoDeps = [ cardano-sl-cluster-demo cardano-node cardano-sl-cluster-prepare-environment ]; demoClusterDeps = [ jq coreutils curl gnused openssl ]; allDeps = demoClusterDeps ++ cardanoDeps; ifWallet = optionalString (runWallet); @@ -43,7 +43,7 @@ in writeScript "demo-cluster" '' #!${stdenv.shell} -e export PATH=${stdenv.lib.makeBinPath allDeps}:$PATH export DEMO_STATE_DIR=${stateDir} - export DEMO_CONFIGURATION_FILE=${cardanoConfig}/configuration.yaml + export DEMO_CONFIGURATION_FILE=${cardanoConfig}/lib/configuration.yaml export DEMO_SYSTEM_START=$(($(date +%s) + 14)) ${ifAssetLock "export DEMO_ASSET_LOCK_FILE=${assetLockFile}"} ${ifDisableClientAuth "export DEMO_NO_CLIENT_AUTH=True"} @@ -72,7 +72,7 @@ in writeScript "demo-cluster" '' ${ifWallet '' cardano-node \ - --configuration-file ${cardanoConfig}/configuration.yaml \ + --configuration-file ${cardanoConfig}/lib/configuration.yaml \ --tlscert ${stateDir}/tls/edge/server.crt \ --tlskey ${stateDir}/tls/edge/server.key \ --tlsca ${stateDir}/tls/edge/ca.crt \ diff --git a/nix/launch/proposal-gui/default.nix b/nix/launch/proposal-ui/default.nix similarity index 83% rename from nix/launch/proposal-gui/default.nix rename to nix/launch/proposal-ui/default.nix index 069cb89806d..f961d9f27b2 100755 --- a/nix/launch/proposal-gui/default.nix +++ b/nix/launch/proposal-ui/default.nix @@ -1,7 +1,7 @@ with import ../../../lib.nix; { stdenv, writeText, writeScript, curl -, scriptRunner +, testcases , cardanoConfig ## options! @@ -33,7 +33,7 @@ let "--configuration-key ${env.confKey}" ]; -in writeScript "proposal-gui-${environment}" '' +in writeScript "proposal-ui-${environment}" '' #!${stdenv.shell} set -euo pipefail @@ -49,12 +49,12 @@ in writeScript "proposal-gui-${environment}" '' pushd ${stateDir} echo "Launching a proposal gui connected to '${environment}' ..." - SCRIPT=none ${scriptRunner}/bin/testcases \ + SCRIPT=none exec ${testcases}/bin/testcases \ ${configurationArgs} \ --log-console-off \ - --db-path ${stateDir}/db \ - --keyfile ${stateDir}/secret.key \ - --log-config ${cardanoConfig}/log-configs/connect-to-cluster.yaml \ + --db-path db \ + --keyfile secret.key \ + --log-config ${cardanoConfig}/log-configs/connect-to-cluster.yaml \ --logs-prefix logs \ --topology "${if topologyFile != null then topologyFile else topologyFileDefault}" \ '' diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 0981c90dca6..8e1d20f647b 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -32,8 +32,8 @@ let # This is similar to jailbreakCabal, however it # does not require any messing with cabal files. nonReinstallablePkgs = - [ "rts" "ghc" "ghc-prim" "integer-gmp" "integer-simple" "base" - "array" "deepseq" "pretty" "ghc-boot-th" "template-haskell" "ghc-heap" ]; + [ "rts" "ghc" "ghc-prim" "integer-gmp" "integer-simple" "base" + "array" "deepseq" "pretty" "ghc-boot-th" "template-haskell" "ghc-heap" ]; doHaddock = false; doExactConfig = true; } diff --git a/nix/scripts.nix b/nix/scripts.nix index a835c4dcf1c..2c024124805 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -6,37 +6,42 @@ }: let - cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; - cardanoExplorer = nixTools.nix-tools.exes.cardano-sl-explorer; - cardanoTools = nixTools.nix-tools.exes.cardano-sl-tools; - cardanoCluster = nixTools.nix-tools.exes.cardano-sl-cluster; - cardanoNode = nixTools.nix-tools.exes.cardano-sl-node; - scriptRunner = nixTools.nix-tools.exes.cardano-sl-script-runner; pkgs = commonLib.pkgs; connect = let walletConfigFile = ../custom-wallet-config.nix; walletConfig = if builtins.pathExists walletConfigFile then import walletConfigFile else {}; in args: pkgs.callPackage ./launch/connect-to-cluster (args // { - inherit cardanoWallet cardanoExplorer cardanoTools cardanoConfig; + inherit cardanoConfig; + inherit (nixTools.nix-tools.cexes.cardano-wallet) cardano-node; + inherit (nixTools.nix-tools.cexes.cardano-sl-explorer) cardano-explorer; + inherit (nixTools.nix-tools.cexes.cardano-sl-tools) cardano-x509-certificates; } // walletConfig); + demoCluster = pkgs.callPackage ./launch/demo-cluster { + inherit cardanoConfig; + inherit (nixTools.nix-tools.cexes.cardano-sl-cluster) cardano-sl-cluster-demo cardano-sl-cluster-prepare-environment; + inherit (nixTools.nix-tools.cexes.cardano-wallet) cardano-node; + }; in { connectScripts = commonLib.forEnvironments ({ environment, ... }: { wallet = connect { inherit environment; }; explorer = connect { inherit environment; executable = "explorer"; }; - proposalGui = pkgs.callPackage ./launch/proposal-gui { - inherit cardanoConfig scriptRunner; + proposal-ui = pkgs.callPackage ./launch/proposal-ui { + inherit cardanoConfig; + inherit (nixTools.nix-tools.cexes.cardano-sl-script-runner) testcases; }; }); - demoCluster = pkgs.callPackage ./launch/demo-cluster { - inherit cardanoConfig cardanoWallet cardanoCluster; + inherit demoCluster; + demo-function = { disableClientAuth, numImportedWallets, runWallet }: demoCluster.override { + inherit disableClientAuth numImportedWallets runWallet; }; dockerImages = let build = args: pkgs.callPackage ./docker.nix ({ - inherit cardanoNode cardanoConfig connect; + inherit cardanoConfig connect; + inherit (nixTools.nix-tools.cexes.cardano-sl-node) cardano-node-simple; } // args); makeDockerImage = { environment, ...}: build { inherit environment; } // { diff --git a/nix/tests.nix b/nix/tests.nix index cd0cb76efe3..c36d644e7b0 100644 --- a/nix/tests.nix +++ b/nix/tests.nix @@ -1,8 +1,8 @@ { commonLib, src, nixTools }: let pkgs = commonLib.pkgs; - cardanoWallet = nixTools.nix-tools.exes.cardano-wallet; - stylish-haskell = nixTools.nix-tools.exes.stylish-haskell; + cardanoWallet = nixTools.nix-tools.cexes.cardano-wallet.cardano-generate-swagger-file; + stylish-haskell = nixTools.nix-tools.cexes.stylish-haskell.stylish-haskell; validateJson = pkgs.callPackage ../tools/src/validate-json {}; in { shellcheck = pkgs.callPackage commonLib.tests.shellcheck { inherit src; }; @@ -31,6 +31,6 @@ in { stylishHaskell = pkgs.callPackage commonLib.tests.stylishHaskell { inherit src stylish-haskell; }; - #yamlValidation = pkgs.callPackage ./tests/yamlValidation.nix {}; + yamlValidation = pkgs.callPackage ./tests/yamlValidation.nix { inherit (nixTools.nix-tools.cexes.yaml-validation) yamlValidation; }; swaggerSchemaValidation = pkgs.callPackage ./tests/swaggerSchemaValidation.nix { inherit cardanoWallet validateJson; }; } diff --git a/nix/tests/yamlValidation.nix b/nix/tests/yamlValidation.nix index 6d094d47cf8..c4c3859a9fb 100644 --- a/nix/tests/yamlValidation.nix +++ b/nix/tests/yamlValidation.nix @@ -1,10 +1,6 @@ -{ runHaskell, haskellPackages }: +{ runCommand, yamlValidation }: -runHaskell "yamlValidation" haskellPackages (ps: with ps; [ - cardano-sl-util - cardano-sl-infra - split -]) { +runCommand "yamlValidation" { logConfigs = [ ../../log-configs/daedalus.yaml #../../log-configs/greppable.yaml @@ -22,35 +18,5 @@ runHaskell "yamlValidation" haskellPackages (ps: with ps; [ ../../docs/network/example-topologies/traditional.yaml ]; } '' - import Pos.Util.Log.LoggerConfig (LoggerConfig) - import Pos.Infra.Network.Yaml (Topology) - import Data.List.Split - import System.Environment - import Data.Yaml - import Control.Monad.Catch - import Data.Monoid - - main :: IO () - main = do - runTest "logConfigs" checkLogConfig - runTest "topologyConfigs" checkTopology - outpath <- getEnv "out" - writeFile outpath "done" - - runTest :: FromJSON a => String -> (String -> IO a) -> IO () - runTest var func = do - paths <- getEnv var - let - pathList = splitOn " " paths - doTest path = do - putStrLn $ "testing: " <> path - func path - mapM_ doTest pathList - - checkLogConfig :: String -> IO LoggerConfig - checkLogConfig path = do - either throwM return =<< decodeFileEither path - - checkTopology :: String -> IO Topology - checkTopology path = either throwM return =<< decodeFileEither path + ${yamlValidation}/bin/yamlValidation '' diff --git a/release.nix b/release.nix index 86be7adb4c8..9155dc198fc 100644 --- a/release.nix +++ b/release.nix @@ -25,7 +25,7 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-wallet" ]; extraBuilds = { - inherit (default) tests; + inherit (default) tests connectScripts dockerImages demoCluster; }; required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux diff --git a/scripts/ci/check-hydra.sh b/scripts/ci/check-hydra.sh index 55d669f38af..fb7c11acca1 100755 --- a/scripts/ci/check-hydra.sh +++ b/scripts/ci/check-hydra.sh @@ -1,3 +1,3 @@ -#!/usr/bin/env nix-shell -#!nix-shell -p nix -i bash -eval $(nix-build -A check-hydra lib.nix --no-out-link) +#!/usr/bin/env bash + +eval "$(nix-build -A check-hydra lib.nix --no-out-link)" diff --git a/scripts/launch/demo-nix.sh b/scripts/launch/demo-nix.sh index b78f5e85d29..14e7bd0227b 100755 --- a/scripts/launch/demo-nix.sh +++ b/scripts/launch/demo-nix.sh @@ -41,5 +41,5 @@ fi GITREV=$(git rev-parse HEAD) -nix-build -E "(import ./. {}).callPackage ./scripts/launch/demo-cluster { disableClientAuth = $DISABLE_CLIENT_AUTH; numImportedWallets = $NUM_IMPORTED_WALLETS; runWallet = $RUN_WALLET; }" -o "launch_$GITREV" +nix-build -A demo-function --arg disableClientAuth $DISABLE_CLIENT_AUTH --arg numImportedWallets $NUM_IMPORTED_WALLETS --arg runWallet $RUN_WALLET -o "launch_$GITREV" exec ./launch_"$GITREV" diff --git a/stack.yaml b/stack.yaml index d3fc6645969..62f9615cfb6 100644 --- a/stack.yaml +++ b/stack.yaml @@ -44,6 +44,7 @@ packages: - x509 - cluster - mnemonic +- yaml-validation # IOHK projects: diff --git a/yaml-validation/Main.hs b/yaml-validation/Main.hs new file mode 100644 index 00000000000..1ae86b1abee --- /dev/null +++ b/yaml-validation/Main.hs @@ -0,0 +1,34 @@ +module Main (main) where + +import Pos.Util.Log.LoggerConfig (LoggerConfig) +import Pos.Infra.Network.Yaml (Topology) +import Data.List.Split +import System.Environment +import Data.Yaml +import Control.Monad.Catch +import Data.Monoid + +main :: IO () +main = do + runTest "logConfigs" checkLogConfig + runTest "topologyConfigs" checkTopology + outpath <- getEnv "out" + writeFile outpath "done" + +runTest :: FromJSON a => String -> (String -> IO a) -> IO () +runTest var func = do + paths <- getEnv var + let + pathList = splitOn " " paths + doTest path = do + putStrLn $ "testing: " <> path + func path + mapM_ doTest pathList + +checkLogConfig :: String -> IO LoggerConfig +checkLogConfig path = do + either throwM return =<< decodeFileEither path + +checkTopology :: String -> IO Topology +checkTopology path = either throwM return =<< decodeFileEither path + diff --git a/yaml-validation/yaml-validation.cabal b/yaml-validation/yaml-validation.cabal new file mode 100644 index 00000000000..a698bcc5d5b --- /dev/null +++ b/yaml-validation/yaml-validation.cabal @@ -0,0 +1,14 @@ +name: yaml-validation +version: 0.1 +cabal-version: >=1.10 +build-type: Simple + +executable yamlValidation + default-language: Haskell2010 + build-depends: base + , cardano-sl-util + , cardano-sl-infra + , split + , yaml + , exceptions + main-is: Main.hs From 289f7e2432c97e7a0aff870bbf2d72cb5b4770ff Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Wed, 10 Jul 2019 23:01:04 -0400 Subject: [PATCH 19/30] fix shellcheck --- scripts/launch/demo-nix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/launch/demo-nix.sh b/scripts/launch/demo-nix.sh index 14e7bd0227b..cadab875543 100755 --- a/scripts/launch/demo-nix.sh +++ b/scripts/launch/demo-nix.sh @@ -41,5 +41,5 @@ fi GITREV=$(git rev-parse HEAD) -nix-build -A demo-function --arg disableClientAuth $DISABLE_CLIENT_AUTH --arg numImportedWallets $NUM_IMPORTED_WALLETS --arg runWallet $RUN_WALLET -o "launch_$GITREV" +nix-build -A demo-function --arg disableClientAuth "$DISABLE_CLIENT_AUTH" --arg numImportedWallets "$NUM_IMPORTED_WALLETS" --arg runWallet "$RUN_WALLET" -o "launch_$GITREV" exec ./launch_"$GITREV" From c23041de56eb9eb74d9f1d99f63127d4e0e7789c Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 08:45:13 -0300 Subject: [PATCH 20/30] expose all of the docker images --- release.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/release.nix b/release.nix index 9155dc198fc..40aa8b68f26 100644 --- a/release.nix +++ b/release.nix @@ -25,7 +25,17 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-wallet" ]; extraBuilds = { - inherit (default) tests connectScripts dockerImages demoCluster; + inherit (default) tests connectScripts demoCluster; + dockerImages = let + mkDocker = cluster: { + inherit (default.dockerImages.${cluster}) wallet explorer; + }; + in { + mainnet = mkDocker "mainnet"; + staging = mkDocker "staging"; + demo = mkDocker "demo"; + testnet = mkDocker "testnet"; + }; }; required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux From b524a459724743f2603dc22f4eb1282749ce3b3f Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 09:17:30 -0300 Subject: [PATCH 21/30] fix hydra build products --- nix/docker.nix | 3 +++ release.nix | 34 ++++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/nix/docker.nix b/nix/docker.nix index cd691a20edd..c75566028fb 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -68,4 +68,7 @@ in dockerTools.buildImage { "8000/tcp" = {}; # ekg }; }; + created = "2019-07-11T00:00:00Z"; + extraCommands = '' + ''; } diff --git a/release.nix b/release.nix index 40aa8b68f26..470cc9d594a 100644 --- a/release.nix +++ b/release.nix @@ -2,6 +2,26 @@ let commonLib = import ./lib.nix; default = import ./. {}; disabled = []; + makeConnectScripts = cluster: default.connectScripts.${cluster}; + wrapDockerImage = cluster: let + images = default.dockerImages; + wrapImage = image: commonLib.pkgs.runCommand "${image.name}-hydra" {} '' + mkdir -pv $out/nix-support/ + cat < $out/nix-support/hydra-build-products + file dockerimage ${image} + EOF + ''; + in { + wallet = wrapImage images.${cluster}.wallet; + explorer = wrapImage images.${cluster}.explorer; + }; + makeRelease = cluster: { + name = cluster; + value = { + connectScripts = makeConnectScripts cluster; + dockerImage = wrapDockerImage cluster; + }; + }; in { cardano-sl ? { outPath = ./.; rev = "abcdef"; }, ... }@args: commonLib.pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation")) @@ -25,18 +45,8 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-wallet" ]; extraBuilds = { - inherit (default) tests connectScripts demoCluster; - dockerImages = let - mkDocker = cluster: { - inherit (default.dockerImages.${cluster}) wallet explorer; - }; - in { - mainnet = mkDocker "mainnet"; - staging = mkDocker "staging"; - demo = mkDocker "demo"; - testnet = mkDocker "testnet"; - }; - }; + inherit (default) tests demoCluster; + } // (builtins.listToAttrs (map makeRelease [ "mainnet" "staging" "demo" "testnet" ])); required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux jobs.nix-tools.exes.cardano-wallet.x86_64-darwin From 4afcf8c1fdbd9d70dcc4642f816566cc08e80d39 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 09:34:21 -0300 Subject: [PATCH 22/30] fix force new eval --- release.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/release.nix b/release.nix index 470cc9d594a..b56108278c4 100644 --- a/release.nix +++ b/release.nix @@ -22,12 +22,12 @@ let dockerImage = wrapDockerImage cluster; }; }; -in { cardano-sl ? { outPath = ./.; rev = "abcdef"; }, ... }@args: +in { cardano ? { outPath = ./.; rev = "abcdef"; }, ... }@args: commonLib.pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation")) (path: v: if (builtins.elem path disabled) then null else v) (commonLib.nix-tools.release-nix { - _this = cardano-sl; + _this = cardano; package-set-path = ./nix/nix-tools.nix; packages = [ "cardano-sl" @@ -50,6 +50,5 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux jobs.nix-tools.exes.cardano-wallet.x86_64-darwin - (builtins.attrValues jobs.tests) - ]; -} (builtins.removeAttrs args ["cardano-sl"])) + ] ++ (builtins.attrValues jobs.tests); +} (builtins.removeAttrs args ["cardano"])) From e8ef924cc8426e3995b5bb5f045e6d1da23ab02f Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 10:32:30 -0300 Subject: [PATCH 23/30] expose daedalus-bridge in release.nix --- default.nix | 5 +++-- release.nix | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/default.nix b/default.nix index 806b46ff78c..426de84a78b 100644 --- a/default.nix +++ b/default.nix @@ -1,4 +1,5 @@ -{ customConfig ? {}, ... }: +{ customConfig ? {} +, system ? builtins.currentSystem }: # # The default.nix file. This will generate targets for all # buildables (see release.nix for nomenclature, excluding @@ -39,7 +40,7 @@ let # important so that the release.nix file can properly # parameterize this file when targetting different # hosts. - nixTools = import ./nix/nix-tools.nix {}; + nixTools = import ./nix/nix-tools.nix { inherit system; }; # TODO: move scripts to cardano-shell at some point. # Usage: # nix-build -A scripts.byron.proxy.mainnet -o proxy diff --git a/release.nix b/release.nix index b56108278c4..f78db76a0cf 100644 --- a/release.nix +++ b/release.nix @@ -22,6 +22,12 @@ let dockerImage = wrapDockerImage cluster; }; }; + getArchDefault = system: let + table = { + x86_64-linux = import ./. { system = "x86_64-linux"; }; + x86_64-darwin = import ./. { system = "x86_64-darwin"; }; + }; + in table.${system}; in { cardano ? { outPath = ./.; rev = "abcdef"; }, ... }@args: commonLib.pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation")) @@ -46,6 +52,7 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond ]; extraBuilds = { inherit (default) tests demoCluster; + daedalus-bridge = commonLib.pkgs.lib.mapAttrs (k: v: (getArchDefault k).daedalus-bridge) { x86_64-linux = 1; x86_64-darwin = 1; }; } // (builtins.listToAttrs (map makeRelease [ "mainnet" "staging" "demo" "testnet" ])); required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux From 13768474e7c37dbdb8144f2dae689d7ab52cd2b8 Mon Sep 17 00:00:00 2001 From: Moritz Angermann Date: Thu, 11 Jul 2019 23:00:46 +0800 Subject: [PATCH 24/30] fix TH --- nix/patches/cardano-sl.patch | 13 +++++++++++++ nix/pkgs.nix | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 nix/patches/cardano-sl.patch diff --git a/nix/patches/cardano-sl.patch b/nix/patches/cardano-sl.patch new file mode 100644 index 00000000000..15bed8c15f6 --- /dev/null +++ b/nix/patches/cardano-sl.patch @@ -0,0 +1,13 @@ +diff --git a/src/Pos/Util/Config.hs b/src/Pos/Util/Config.hs +index 2450b4e0a9..801a12928e 100644 +--- a/src/Pos/Util/Config.hs ++++ b/src/Pos/Util/Config.hs +@@ -38,7 +38,7 @@ embedYamlObject name marker parser = do + Just dir -> return (dir name) + Nothing -> error $ toText $ + "Could not find " ++ marker ++ " for path: " ++ srcFP +- TH.qAddDependentFile path ++ -- TH.qAddDependentFile path + TH.runIO (Y.decodeFileEither path) >>= \case + Right x -> parser x + Left err -> templateHaskellError $ diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 8e1d20f647b..9de446c1fa2 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -37,6 +37,9 @@ let doHaddock = false; doExactConfig = true; } + { + packages.cardano-sl.patches = [ ./patches/cardano-sl.patch ]; + } ]; }; From ad073dec85985ac398b596df6842bf89c5d112c4 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 12:01:27 -0300 Subject: [PATCH 25/30] fix daedalus-bridge darwin builds --- default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.nix b/default.nix index 426de84a78b..f1ca4e4cb50 100644 --- a/default.nix +++ b/default.nix @@ -31,7 +31,7 @@ # the nix-tools tooling. let commonLib = import ./lib.nix; - pkgs = commonLib.pkgs; + pkgs = import commonLib.nixpkgs { inherit system; }; src = commonLib.cleanSourceHaskell ./.; # This file needs to export a function that takes From c0dbe0e93eaead14d78a5225fee04c1ac94a8791 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 18:59:05 -0300 Subject: [PATCH 26/30] pre-build the connect to cluster scripts for both darwin and linux --- release.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/release.nix b/release.nix index f78db76a0cf..00890aa4fe1 100644 --- a/release.nix +++ b/release.nix @@ -2,7 +2,16 @@ let commonLib = import ./lib.nix; default = import ./. {}; disabled = []; - makeConnectScripts = cluster: default.connectScripts.${cluster}; + makeConnectScripts = cluster: let + getScript = name: { + x86_64-linux = (getArchDefault "x86_64-linux").connectScripts.${cluster}.${name}; + x86_64-darwin = (getArchDefault "x86_64-darwin").connectScripts.${cluster}.${name}; + }; + in { + explorer = getScript "explorer"; + proposal-ui = getScript "proposal-ui"; + wallet = getScript "wallet"; + }; wrapDockerImage = cluster: let images = default.dockerImages; wrapImage = image: commonLib.pkgs.runCommand "${image.name}-hydra" {} '' From 57285c64003111454fa0ee05a325c37fce44b086 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Thu, 11 Jul 2019 19:11:19 -0300 Subject: [PATCH 27/30] add 3 more packages to release.nix --- release.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release.nix b/release.nix index 00890aa4fe1..1abdc866535 100644 --- a/release.nix +++ b/release.nix @@ -58,6 +58,9 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-sl-util" "cardano-sl-x509" "cardano-wallet" + "cardano-sl-script-runner" + "cardano-sl-explorer" + "cardano-sl-cluster" ]; extraBuilds = { inherit (default) tests demoCluster; From ef1d0308e9c1e0c0b2ef19774849c665742adfc4 Mon Sep 17 00:00:00 2001 From: Samuel Leathers Date: Fri, 12 Jul 2019 14:42:52 -0400 Subject: [PATCH 28/30] fix comments --- default.nix | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/default.nix b/default.nix index f1ca4e4cb50..62f399fdf7a 100644 --- a/default.nix +++ b/default.nix @@ -1,12 +1,6 @@ { customConfig ? {} , system ? builtins.currentSystem }: # -# The default.nix file. This will generate targets for all -# buildables (see release.nix for nomenclature, excluding -# the "build machine" last part, specific to release.nix), eg.: -# -# - nix build -f default.nix nix-tools.tests.io-sim # All `io-sim` tests -# - nix build -f default.nix nix-tools.tests.ouroboros-consensus.test-consensus # # Generated targets include anything from stack.yaml (via nix-tools:stack-to-nix and the nix/regenerate.sh script) # or cabal.project (via nix-tools:plan-to-nix), including all @@ -27,33 +21,24 @@ # https://github.com/input-output-hk/iohk-nix/blob/master/docs/nix-toolification.org#for-a-stackage-project # -# We will need to import the iohk-nix common lib, which includes -# the nix-tools tooling. let + # commonLib provides iohk-nix tooling and extra libraries specific to cardano-sl. commonLib = import ./lib.nix; pkgs = import commonLib.nixpkgs { inherit system; }; src = commonLib.cleanSourceHaskell ./.; -# This file needs to export a function that takes -# the arguments it is passed and forwards them to -# the default-nix template from iohk-nix. This is -# important so that the release.nix file can properly -# parameterize this file when targetting different -# hosts. + # nixTools contains all the haskell binaries and libraries built by haskell.nix nixTools = import ./nix/nix-tools.nix { inherit system; }; - # TODO: move scripts to cardano-shell at some point. - # Usage: - # nix-build -A scripts.byron.proxy.mainnet -o proxy - # nix-build -A scripts.byron.validator.mainnet -o validator - # ./proxy - # ./validator cardanoConfig = pkgs.callPackage ./nix/cardano-sl-config.nix {}; + # scripts contains connectScripts, dockerImages and demoCluster scripts = import ./nix/scripts.nix { inherit commonLib nixTools customConfig cardanoConfig; }; + # Tests contains code quality tests like shellcheck, yaml validation, and haskell style requirements to pass CI tests = import ./nix/tests.nix { inherit commonLib src nixTools; }; + # daedalus bridge contains the binaries and config files daedalus requires daedalus-bridge = pkgs.callPackage ./nix/daedalus-bridge.nix { inherit nixTools cardanoConfig; }; From fb6a974ab3797ae55b1bfa5c590c1a76b5ff0cbd Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 12 Jul 2019 16:14:11 -0300 Subject: [PATCH 29/30] build daedalus-bridge for windows too --- default.nix | 9 ++++++--- nix/daedalus-bridge.nix | 16 +++++++++------- release.nix | 15 ++++++++++----- script-runner/cardano-sl-script-runner.cabal | 4 ++++ 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/default.nix b/default.nix index 62f399fdf7a..d9b1bcbddb8 100644 --- a/default.nix +++ b/default.nix @@ -1,5 +1,5 @@ { customConfig ? {} -, system ? builtins.currentSystem }: +, target ? builtins.currentSystem }: # # # Generated targets include anything from stack.yaml (via nix-tools:stack-to-nix and the nix/regenerate.sh script) @@ -22,13 +22,15 @@ # let + system = if target != "x86_64-windows" then target else builtins.currentSystem; + crossSystem = if target == "x86_64-windows" then commonLib.pkgs.lib.systems.examples.mingwW64 else null; # commonLib provides iohk-nix tooling and extra libraries specific to cardano-sl. commonLib = import ./lib.nix; - pkgs = import commonLib.nixpkgs { inherit system; }; + pkgs = import commonLib.nixpkgs { inherit system crossSystem; }; src = commonLib.cleanSourceHaskell ./.; # nixTools contains all the haskell binaries and libraries built by haskell.nix - nixTools = import ./nix/nix-tools.nix { inherit system; }; + nixTools = import ./nix/nix-tools.nix { inherit system crossSystem; }; cardanoConfig = pkgs.callPackage ./nix/cardano-sl-config.nix {}; # scripts contains connectScripts, dockerImages and demoCluster scripts = import ./nix/scripts.nix { @@ -43,6 +45,7 @@ let inherit nixTools cardanoConfig; }; in { + inherit pkgs; inherit daedalus-bridge tests; inherit (nixTools) nix-tools; } // scripts diff --git a/nix/daedalus-bridge.nix b/nix/daedalus-bridge.nix index a64f8977e7e..76ffe58ce0f 100644 --- a/nix/daedalus-bridge.nix +++ b/nix/daedalus-bridge.nix @@ -21,12 +21,14 @@ in runCommand "cardano-daedalus-bridge-${version}" { cp --no-preserve=mode -R ${cardanoConfig}/lib config cp ${cardanoConfig}/log-configs/daedalus.yaml $out/config/log-config-prod.yaml - cp ${cardanoTools}/bin/cardano-launcher bin - cp ${cardanoTools}/bin/wallet-extractor bin - cp ${cardanoTools}/bin/cardano-x509-certificates bin - cp ${cardanoWallet}/bin/cardano-node bin + cp ${cardanoTools}/bin/cardano-launcher* bin/ + cp ${cardanoTools}/bin/wallet-extractor* bin/ + cp ${cardanoTools}/bin/cardano-x509-certificates* bin/ + cp ${cardanoWallet}/bin/cardano-node* bin/ - # test that binaries exit with 0 - ./bin/cardano-node --help > /dev/null - HOME=$TMP ./bin/cardano-launcher --help > /dev/null + ${optionalString (stdenv.targetPlatform.libc != "msvcrt") '' + # test that binaries exit with 0 + ./bin/cardano-node --help > /dev/null + HOME=$TMP ./bin/cardano-launcher --help > /dev/null + ''} '' diff --git a/release.nix b/release.nix index 1abdc866535..8e2beb97822 100644 --- a/release.nix +++ b/release.nix @@ -33,8 +33,9 @@ let }; getArchDefault = system: let table = { - x86_64-linux = import ./. { system = "x86_64-linux"; }; - x86_64-darwin = import ./. { system = "x86_64-darwin"; }; + x86_64-linux = import ./. { target = "x86_64-linux"; }; + x86_64-darwin = import ./. { target = "x86_64-darwin"; }; + x86_64-windows = import ./. { target = "x86_64-windows"; }; }; in table.${system}; in { cardano ? { outPath = ./.; rev = "abcdef"; }, ... }@args: @@ -58,16 +59,20 @@ commonLib.pkgs.lib.mapAttrsRecursiveCond "cardano-sl-util" "cardano-sl-x509" "cardano-wallet" - "cardano-sl-script-runner" "cardano-sl-explorer" "cardano-sl-cluster" ]; extraBuilds = { inherit (default) tests demoCluster; - daedalus-bridge = commonLib.pkgs.lib.mapAttrs (k: v: (getArchDefault k).daedalus-bridge) { x86_64-linux = 1; x86_64-darwin = 1; }; + daedalus-bridge = commonLib.pkgs.lib.mapAttrs (k: v: (getArchDefault k).daedalus-bridge) { + x86_64-linux = 1; + x86_64-darwin = 1; + x86_64-windows = 1; + }; } // (builtins.listToAttrs (map makeRelease [ "mainnet" "staging" "demo" "testnet" ])); required-targets = jobs: [ jobs.nix-tools.exes.cardano-wallet.x86_64-linux jobs.nix-tools.exes.cardano-wallet.x86_64-darwin - ] ++ (builtins.attrValues jobs.tests); + ] ++ (builtins.attrValues jobs.tests) + ++ (builtins.attrValues jobs.daedalus-bridge); } (builtins.removeAttrs args ["cardano"])) diff --git a/script-runner/cardano-sl-script-runner.cabal b/script-runner/cardano-sl-script-runner.cabal index 2bd84298a53..08dc35f3166 100644 --- a/script-runner/cardano-sl-script-runner.cabal +++ b/script-runner/cardano-sl-script-runner.cabal @@ -61,6 +61,8 @@ library ghc-options: -Wall -Weverything -Wno-unsafe -Wno-missing-import-lists -O2 + if os(windows) + buildable: False executable testcases main-is: TestCases.hs @@ -89,3 +91,5 @@ executable testcases -Wall -Weverything -Wno-unsafe -Wno-missing-import-lists -O2 + if os(windows) + buildable: False From 9004ccedc0cb00b2abf700286b030f3d1fab4ec1 Mon Sep 17 00:00:00 2001 From: Michael Bishop Date: Fri, 12 Jul 2019 17:47:54 -0300 Subject: [PATCH 30/30] fix gitrev and version in daedalus-bridge --- default.nix | 14 ++++++++++---- nix/daedalus-bridge.nix | 2 +- release.nix | 22 ++++++++++++---------- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/default.nix b/default.nix index d9b1bcbddb8..d54328097b2 100644 --- a/default.nix +++ b/default.nix @@ -1,5 +1,10 @@ -{ customConfig ? {} -, target ? builtins.currentSystem }: +let + lib = (import ./lib.nix).pkgs.lib; + commitIdFromGitRepo = import ./nix/commit-id.nix { inherit lib; }; +in { customConfig ? {} +, target ? builtins.currentSystem +, gitrev ? commitIdFromGitRepo ./.git +}: # # # Generated targets include anything from stack.yaml (via nix-tools:stack-to-nix and the nix/regenerate.sh script) @@ -23,7 +28,7 @@ let system = if target != "x86_64-windows" then target else builtins.currentSystem; - crossSystem = if target == "x86_64-windows" then commonLib.pkgs.lib.systems.examples.mingwW64 else null; + crossSystem = if target == "x86_64-windows" then lib.systems.examples.mingwW64 else null; # commonLib provides iohk-nix tooling and extra libraries specific to cardano-sl. commonLib = import ./lib.nix; pkgs = import commonLib.nixpkgs { inherit system crossSystem; }; @@ -42,7 +47,8 @@ let }; # daedalus bridge contains the binaries and config files daedalus requires daedalus-bridge = pkgs.callPackage ./nix/daedalus-bridge.nix { - inherit nixTools cardanoConfig; + inherit nixTools cardanoConfig gitrev; + version = nixTools.nix-tools._raw.cardano-sl.identifier.version; }; in { inherit pkgs; diff --git a/nix/daedalus-bridge.nix b/nix/daedalus-bridge.nix index 76ffe58ce0f..f4213a4bbbe 100644 --- a/nix/daedalus-bridge.nix +++ b/nix/daedalus-bridge.nix @@ -1,6 +1,6 @@ { runCommand, stdenv , nixTools, cardanoConfig -, version ? "unstable", gitrev ? "abcdef", buildId ? null }: +, version ? "unstable", gitrev, buildId ? null }: with stdenv.lib; diff --git a/release.nix b/release.nix index 8e2beb97822..d8de5679e94 100644 --- a/release.nix +++ b/release.nix @@ -1,7 +1,16 @@ let commonLib = import ./lib.nix; - default = import ./. {}; disabled = []; +in { cardano ? { outPath = ./.; rev = "abcdef"; }, ... }@args: +let + getArchDefault = system: let + table = { + x86_64-linux = import ./. { target = "x86_64-linux"; gitrev = cardano.rev; }; + x86_64-darwin = import ./. { target = "x86_64-darwin"; gitrev = cardano.rev; }; + x86_64-windows = import ./. { target = "x86_64-windows"; gitrev = cardano.rev; }; + }; + in table.${system}; + default = getArchDefault builtins.currentSystem; makeConnectScripts = cluster: let getScript = name: { x86_64-linux = (getArchDefault "x86_64-linux").connectScripts.${cluster}.${name}; @@ -13,7 +22,7 @@ let wallet = getScript "wallet"; }; wrapDockerImage = cluster: let - images = default.dockerImages; + images = (getArchDefault "x86_64-linux").dockerImages; wrapImage = image: commonLib.pkgs.runCommand "${image.name}-hydra" {} '' mkdir -pv $out/nix-support/ cat < $out/nix-support/hydra-build-products @@ -31,14 +40,7 @@ let dockerImage = wrapDockerImage cluster; }; }; - getArchDefault = system: let - table = { - x86_64-linux = import ./. { target = "x86_64-linux"; }; - x86_64-darwin = import ./. { target = "x86_64-darwin"; }; - x86_64-windows = import ./. { target = "x86_64-windows"; }; - }; - in table.${system}; -in { cardano ? { outPath = ./.; rev = "abcdef"; }, ... }@args: +in commonLib.pkgs.lib.mapAttrsRecursiveCond (as: !(as ? "type" && as.type == "derivation")) (path: v: if (builtins.elem path disabled) then null else v)