git.iko.soy/typeable/cabal2nix
on master help sign in
381 files changed+2891−3026
since splitsnapshots
unifiedsplit
.travis.yml+137−79 README.md+12−7 cabal2nix.cabal+138−179 doc/01-use-function-application-to-escape-override-hell.md+1−1 doc/hal8.md+1−1 hackage2nix/HackageGit.hs+4−9 hackage2nix/Main.hs+30−19 hackage2nix/README.md+3 src/Cabal2nix.hs+98−46 src/Distribution/Nixpkgs/Fetch.hs+47−9 src/Distribution/Nixpkgs/Haskell/BuildInfo.hs+3−3 src/Distribution/Nixpkgs/Haskell/Constraint.hs+1−1 src/Distribution/Nixpkgs/Haskell/Derivation.hs+15−19 src/Distribution/Nixpkgs/Haskell/FromCabal.hs+30−14 src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs+28−31 src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs+22−17 src/Distribution/Nixpkgs/Haskell/FromCabal/License.hs+135−4 src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs+33−16 src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs+1−20 src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+151−46 src/Distribution/Nixpkgs/Haskell/Hackage.hs+3−2 src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs+29−54 src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs+100−54 test/Main.hs+93−23 test/golden-test-cases/ChasingBottoms.nix.golden+4−7 test/golden-test-cases/Clipboard.nix.golden+3−7 test/golden-test-cases/FenwickTree.nix.golden+3−6 test/golden-test-cases/GPipe-GLFW.nix.golden+3−7 test/golden-test-cases/GenericPretty.nix.golden+3−6 test/golden-test-cases/HPDF.nix.golden+3−6 test/golden-test-cases/HTF.nix.golden+5−8 test/golden-test-cases/HTTP.nix.golden+5−8 test/golden-test-cases/Hclip.nix.golden+3−6 test/golden-test-cases/MissingH.nix.golden+5−8 test/golden-test-cases/ObjectName.nix.golden+3−6 test/golden-test-cases/Only.nix.golden+3−6 test/golden-test-cases/QuasiText.nix.golden+3−6 test/golden-test-cases/QuickCheck.nix.golden+3−6 test/golden-test-cases/ReadArgs.nix.golden+3−6 test/golden-test-cases/SHA.nix.golden+4−8 test/golden-test-cases/Strafunski-StrategyLib.nix.golden+3−7 test/golden-test-cases/accelerate-fftw.nix.golden+4−7 test/golden-test-cases/accelerate.nix.golden+4−7 test/golden-test-cases/active.nix.golden+4−7 test/golden-test-cases/adjunctions.nix.golden+4−7 test/golden-test-cases/aeson-diff.nix.golden+5−8 test/golden-test-cases/aeson-pretty.nix.golden+3−6 test/golden-test-cases/algebraic-graphs.nix.golden+4−7 test/golden-test-cases/amazonka-cloudtrail.nix.golden+3−6 test/golden-test-cases/amazonka-cloudwatch-logs.nix.golden+3−6 test/golden-test-cases/amazonka-codedeploy.nix.golden+3−6 test/golden-test-cases/amazonka-cognito-idp.nix.golden+3−6 test/golden-test-cases/amazonka-ecs.nix.golden+3−6 test/golden-test-cases/amazonka-kms.nix.golden+3−6 test/golden-test-cases/amazonka-lightsail.nix.golden+3−6 test/golden-test-cases/amazonka-route53-domains.nix.golden+3−6 test/golden-test-cases/amazonka-waf.nix.golden+3−6 test/golden-test-cases/api-field-json-th.nix.golden+3−6 test/golden-test-cases/app-settings.nix.golden+4−7 test/golden-test-cases/apply-refact.nix.golden+5−8 test/golden-test-cases/async.nix.golden+3−6 test/golden-test-cases/attoparsec-expr.nix.golden+3−6 test/golden-test-cases/attoparsec-time.nix.golden+3−6 test/golden-test-cases/avers-server.nix.golden+5−8 test/golden-test-cases/aws.nix.golden+6−9 test/golden-test-cases/bbdb.nix.golden+3−6 test/golden-test-cases/benchpress.nix.golden+3−6 test/golden-test-cases/binary-bits.nix.golden+4−7 test/golden-test-cases/binary-tagged.nix.golden+4−7 test/golden-test-cases/bindings-uname.nix.golden+3−6 test/golden-test-cases/bioalign.nix.golden+3−6 test/golden-test-cases/bits.nix.golden+4−7 test/golden-test-cases/blank-canvas.nix.golden+4−7 test/golden-test-cases/blaze-html.nix.golden+3−6 test/golden-test-cases/blaze-markup.nix.golden+4−7 test/golden-test-cases/blaze-svg.nix.golden+3−6 test/golden-test-cases/blosum.nix.golden+4−7 test/golden-test-cases/boomerang.nix.golden+3−6 test/golden-test-cases/boxes.nix.golden+3−6 test/golden-test-cases/brittany.nix.golden+5−8 test/golden-test-cases/broadcast-chan.nix.golden+3−6 test/golden-test-cases/butcher.nix.golden+3−10 test/golden-test-cases/bzlib.nix.golden+3−6 test/golden-test-cases/case-insensitive.nix.golden+4−7 test/golden-test-cases/cassava-conduit.nix.golden+4−7 test/golden-test-cases/cassette.nix.golden+3−6 test/golden-test-cases/cereal-text.nix.golden+3−6 test/golden-test-cases/cheapskate.nix.golden+3−6 test/golden-test-cases/chell.nix.golden+4−7 test/golden-test-cases/clumpiness.nix.golden+3−6 test/golden-test-cases/code-page.nix.golden+3−6 test/golden-test-cases/colorize-haskell.nix.golden+3−6 test/golden-test-cases/countable.nix.golden+3−6 test/golden-test-cases/cpu.nix.golden+3−6 test/golden-test-cases/criterion.nix.golden+4−7 test/golden-test-cases/crypt-sha512.nix.golden+3−6 test/golden-test-cases/crypto-random-api.nix.golden+3−6 test/golden-test-cases/csv.nix.golden+3−6 test/golden-test-cases/data-accessor.nix.golden+3−6 test/golden-test-cases/data-default-instances-containers.nix.golden+3−6 test/golden-test-cases/data-endian.nix.golden+3−6 test/golden-test-cases/data-msgpack.nix.golden+4−7 test/golden-test-cases/data-serializer.nix.golden+3−6 test/golden-test-cases/deque.nix.golden+3−6 test/golden-test-cases/dhall-bash.nix.golden+4−7 test/golden-test-cases/diagrams-solve.nix.golden+3−6 test/golden-test-cases/discrimination.nix.golden+4−7 test/golden-test-cases/dotenv.nix.golden+5−8 test/golden-test-cases/dotnet-timespan.nix.golden+3−6 test/golden-test-cases/dpor.nix.golden+4−7 test/golden-test-cases/drawille.nix.golden+3−6 test/golden-test-cases/drifter-postgresql.nix.golden+5−8 test/golden-test-cases/ede.nix.golden+5−7 test/golden-test-cases/ekg-cloudwatch.nix.golden+3−6 test/golden-test-cases/emailaddress.nix.golden+5−8 test/golden-test-cases/envelope.nix.golden+4−7 test/golden-test-cases/eventful-sqlite.nix.golden+4−7 test/golden-test-cases/exact-pi.nix.golden+3−6 test/golden-test-cases/expiring-cache-map.nix.golden+3−6 test/golden-test-cases/explicit-exception.nix.golden+3−6 test/golden-test-cases/fdo-notify.nix.golden+3−6 test/golden-test-cases/fgl.nix.golden+4−7 test/golden-test-cases/file-modules.nix.golden+4−7 test/golden-test-cases/fingertree.nix.golden+3−6 test/golden-test-cases/fixed-vector.nix.golden+4−7 test/golden-test-cases/fixed.nix.golden+3−6 test/golden-test-cases/foundation.nix.golden+3−6 test/golden-test-cases/frisby.nix.golden+3−7 test/golden-test-cases/funcmp.nix.golden+3−6 test/golden-test-cases/functor-classes-compat.nix.golden+3−6 test/golden-test-cases/general-games.nix.golden+4−7 test/golden-test-cases/generic-lens.nix.golden+4−7 test/golden-test-cases/genvalidity-aeson.nix.golden+5−8 test/golden-test-cases/genvalidity-hspec-aeson.nix.golden+4−7 test/golden-test-cases/genvalidity-hspec-binary.nix.golden+4−7 test/golden-test-cases/genvalidity-scientific.nix.golden+4−7 test/golden-test-cases/genvalidity-uuid.nix.golden+4−7 test/golden-test-cases/ghc-syb-utils.nix.golden+3−6 test/golden-test-cases/ghcid.nix.golden+3−6 test/golden-test-cases/giphy-api.nix.golden+5−9 test/golden-test-cases/github.nix.golden+6−9 test/golden-test-cases/gl.nix.golden+5−8 test/golden-test-cases/gogol-adexchange-buyer.nix.golden+4−6 test/golden-test-cases/gogol-admin-emailmigration.nix.golden+4−6 test/golden-test-cases/gogol-affiliates.nix.golden+4−6 test/golden-test-cases/gogol-apps-tasks.nix.golden+4−6 test/golden-test-cases/gogol-appstate.nix.golden+4−6 test/golden-test-cases/gogol-blogger.nix.golden+4−6 test/golden-test-cases/gogol-datastore.nix.golden+4−6 test/golden-test-cases/gogol-dfareporting.nix.golden+4−6 test/golden-test-cases/gogol-firebase-rules.nix.golden+4−6 test/golden-test-cases/gogol-gmail.nix.golden+4−6 test/golden-test-cases/gogol-kgsearch.nix.golden+4−6 test/golden-test-cases/gogol-maps-engine.nix.golden+4−6 test/golden-test-cases/gogol-plus.nix.golden+4−6 test/golden-test-cases/gogol-resourceviews.nix.golden+4−6 test/golden-test-cases/gogol-translate.nix.golden+4−6 test/golden-test-cases/gogol-webmaster-tools.nix.golden+4−6 test/golden-test-cases/gogol-youtube.nix.golden+4−6 test/golden-test-cases/groundhog-mysql.nix.golden+4−7 test/golden-test-cases/gsasl.nix.golden+3−6 test/golden-test-cases/hOpenPGP.nix.golden+4−7 test/golden-test-cases/hPDB-examples.nix.golden+4−7 test/golden-test-cases/haddock-library.cabal+130 test/golden-test-cases/haddock-library.nix.golden+17 test/golden-test-cases/hakyll.nix.golden+6−9 test/golden-test-cases/happstack-hsp.nix.golden+4−7 test/golden-test-cases/happy.nix.golden+4−7 test/golden-test-cases/harp.nix.golden+3−6 test/golden-test-cases/hashtables.nix.golden+3−7 test/golden-test-cases/haskell-tools-debug.nix.golden+6−9 test/golden-test-cases/haskell-tools-rewrite.nix.golden+5−8 test/golden-test-cases/hasql.nix.golden+7−10 test/golden-test-cases/hformat.nix.golden+4−7 test/golden-test-cases/highlighting-kate.nix.golden+6−9 test/golden-test-cases/hit.nix.golden+5−9 test/golden-test-cases/hjson.nix.golden+3−6 test/golden-test-cases/hmpfr.nix.golden+3−6 test/golden-test-cases/hoogle.nix.golden+5−8 test/golden-test-cases/hostname-validate.nix.golden+3−6 test/golden-test-cases/hsinstall.nix.golden+3−6 test/golden-test-cases/hstatsd.nix.golden+3−6 test/golden-test-cases/hsx-jmacro.nix.golden+3−6 test/golden-test-cases/hsyslog.nix.golden+3−6 test/golden-test-cases/htoml.nix.golden+3−6 test/golden-test-cases/http-conduit.nix.golden+6−8 test/golden-test-cases/http-link-header.nix.golden+5−7 test/golden-test-cases/http-media.nix.golden+3−6 test/golden-test-cases/hxt-charproperties.nix.golden+3−6 test/golden-test-cases/hxt-expat.nix.golden+4−6 test/golden-test-cases/hxt-tagsoup.nix.golden+5−7 test/golden-test-cases/iconv.nix.golden+3−6 test/golden-test-cases/incremental-parser.nix.golden+3−6 test/golden-test-cases/indentation-core.nix.golden+3−6 test/golden-test-cases/indentation-parsec.nix.golden+4−7 test/golden-test-cases/inline-c-cpp.nix.golden+3−6 test/golden-test-cases/integer-logarithms.nix.golden+4−7 test/golden-test-cases/intero.nix.golden+4−7 test/golden-test-cases/invariant.nix.golden+4−7 test/golden-test-cases/io-machine.nix.golden+3−6 test/golden-test-cases/io-streams-haproxy.nix.golden+4−7 test/golden-test-cases/ip.nix.golden+4−7 test/golden-test-cases/iso639.nix.golden+3−6 test/golden-test-cases/iso8601-time.nix.golden+3−6 test/golden-test-cases/jmacro-rpc-happstack.nix.golden+3−6 test/golden-test-cases/jmacro-rpc.nix.golden+4−7 test/golden-test-cases/jose.nix.golden+6−10 test/golden-test-cases/katip-elasticsearch.nix.golden+6−9 test/golden-test-cases/katip.nix.golden+6−9 test/golden-test-cases/katydid.nix.golden+4−7 test/golden-test-cases/kawhi.nix.golden+6−9 test/golden-test-cases/kraken.nix.golden+4−7 test/golden-test-cases/l10n.nix.golden+3−6 test/golden-test-cases/lambdabot-social-plugins.nix.golden+4−7 test/golden-test-cases/lazy-csv.nix.golden+3−6 test/golden-test-cases/lens-aeson.nix.golden+5−8 test/golden-test-cases/lens.nix.golden+6−9 test/golden-test-cases/libgit.nix.golden+3−6 test/golden-test-cases/librato.nix.golden+3−6 test/golden-test-cases/lifted-async.nix.golden+5−8 test/golden-test-cases/lmdb.nix.golden+3−6 test/golden-test-cases/logging-effect-extra-file.nix.golden+3−6 test/golden-test-cases/lucid.nix.golden+4−7 test/golden-test-cases/mainland-pretty.nix.golden+3−6 test/golden-test-cases/matrices.nix.golden+4−7 test/golden-test-cases/median-stream.nix.golden+3−6 test/golden-test-cases/megaparsec.nix.golden+5−8 test/golden-test-cases/mersenne-random.nix.golden+3−6 test/golden-test-cases/messagepack.nix.golden+3−6 test/golden-test-cases/microlens-ghc.nix.golden+4−7 test/golden-test-cases/microlens.nix.golden+3−6 test/golden-test-cases/minio-hs.nix.golden+7−11 test/golden-test-cases/mmorph.nix.golden+3−6 test/golden-test-cases/mnist-idx.nix.golden+4−7 test/golden-test-cases/mole.nix.golden+7−10 test/golden-test-cases/monad-products.nix.golden+3−6 test/golden-test-cases/monadcryptorandom.nix.golden+4−7 test/golden-test-cases/monadloc.nix.golden+3−6 test/golden-test-cases/mongoDB.nix.golden+5−8 test/golden-test-cases/monoid-extras.nix.golden+4−7 test/golden-test-cases/mwc-random-monad.nix.golden+4−7 test/golden-test-cases/mwc-random.nix.golden+4−12 test/golden-test-cases/nanospec.nix.golden+3−6 test/golden-test-cases/netpbm.nix.golden+3−6 test/golden-test-cases/network-protocol-xmpp.nix.golden+4−7 test/golden-test-cases/network-transport-tcp.nix.golden+3−6 test/golden-test-cases/nix-paths.nix.golden+3−6 test/golden-test-cases/nvim-hs.nix.golden+7−9 test/golden-test-cases/once.nix.golden+3−6 test/golden-test-cases/one-liner.nix.golden+4−7 test/golden-test-cases/online.nix.golden+3−6 test/golden-test-cases/opencv.cabal+263 test/golden-test-cases/opencv.nix.golden+30 test/golden-test-cases/openexr-write.nix.golden+3−6 test/golden-test-cases/openpgp-asciiarmor.nix.golden+4−6 test/golden-test-cases/pager.nix.golden+3−6 test/golden-test-cases/partial-isomorphisms.nix.golden+3−6 test/golden-test-cases/partial-semigroup.nix.golden+3−6 test/golden-test-cases/pathtype.nix.golden+4−7 test/golden-test-cases/pcap.nix.golden+3−6 test/golden-test-cases/pdfinfo.nix.golden+4−7 test/golden-test-cases/pell.nix.golden+3−6 test/golden-test-cases/persistable-types-HDBC-pg.nix.golden+5−7 test/golden-test-cases/persistent-mysql-haskell.nix.golden+5−8 test/golden-test-cases/picosat.nix.golden+3−6 test/golden-test-cases/pinch.nix.golden+4−6 test/golden-test-cases/pipes-network.nix.golden+4−7 test/golden-test-cases/pipes-safe.nix.golden+4−8 test/golden-test-cases/pointed.nix.golden+4−8 test/golden-test-cases/poly-arity.nix.golden+3−6 test/golden-test-cases/polynomials-bernstein.nix.golden+3−6 test/golden-test-cases/postgresql-simple-url.nix.golden+4−7 test/golden-test-cases/prelude-safeenum.nix.golden+3−6 test/golden-test-cases/presburger.nix.golden+3−6 test/golden-test-cases/prettyclass.nix.golden+3−6 test/golden-test-cases/prettyprinter-compat-ansi-wl-pprint.nix.golden+4−7 test/golden-test-cases/prettyprinter-compat-wl-pprint.nix.golden+3−6 test/golden-test-cases/primitive.nix.golden+3−6 test/golden-test-cases/product-profunctors.nix.golden+3−6 test/golden-test-cases/profiterole.nix.golden+4−7 test/golden-test-cases/projectroot.nix.golden+3−6 test/golden-test-cases/proto-lens-optparse.nix.golden+3−6 test/golden-test-cases/proto-lens.nix.golden+3−6 test/golden-test-cases/psqueues.nix.golden+4−7 test/golden-test-cases/pusher-http-haskell.nix.golden+4−7 test/golden-test-cases/quickcheck-arbitrary-adt.nix.golden+3−6 test/golden-test-cases/quickcheck-combinators.nix.golden+3−7 test/golden-test-cases/rank1dynamic.nix.golden+3−6 test/golden-test-cases/rasterific-svg.nix.golden+5−8 test/golden-test-cases/ratio-int.nix.golden+3−6 test/golden-test-cases/rawstring-qm.nix.golden+3−7 test/golden-test-cases/reactive-banana.nix.golden+4−7 test/golden-test-cases/readline.nix.golden+3−6 test/golden-test-cases/rebase.nix.golden+4−7 test/golden-test-cases/reform-blaze.nix.golden+3−6 test/golden-test-cases/reform-hsp.nix.golden+3−6 test/golden-test-cases/regex-compat.nix.golden+3−6 test/golden-test-cases/regex-pcre.nix.golden+4−7 test/golden-test-cases/relational-query.nix.golden+4−7 test/golden-test-cases/relational-schemas.nix.golden+4−7 test/golden-test-cases/repa-io.nix.golden+4−7 test/golden-test-cases/repa.nix.golden+3−6 test/golden-test-cases/rosezipper.nix.golden+3−6 test/golden-test-cases/rvar.nix.golden+3−6 test/golden-test-cases/scalpel-core.nix.golden+3−6 test/golden-test-cases/sdl2.nix.golden+4−7 test/golden-test-cases/selda-sqlite.nix.golden+4−7 test/golden-test-cases/selda.nix.golden+4−7 test/golden-test-cases/servant-checked-exceptions.nix.golden+6−15 test/golden-test-cases/set-cover.nix.golden+3−6 test/golden-test-cases/sets.nix.golden+6−9 test/golden-test-cases/simple-smt.nix.golden+3−6 test/golden-test-cases/slack-web.nix.golden+4−7 test/golden-test-cases/slug.nix.golden+4−7 test/golden-test-cases/soxlib.nix.golden+4−7 test/golden-test-cases/speedy-slice.nix.golden+4−7 test/golden-test-cases/splice.nix.golden+3−6 test/golden-test-cases/spreadsheet.nix.golden+3−6 test/golden-test-cases/stack-type.nix.golden+3−6 test/golden-test-cases/state-codes.nix.golden+4−7 test/golden-test-cases/stb-image-redux.nix.golden+3−6 test/golden-test-cases/stm-containers.nix.golden+6−9 test/golden-test-cases/streaming-commons.nix.golden+4−7 test/golden-test-cases/strict-base-types.nix.golden+4−7 test/golden-test-cases/strict-types.nix.golden+3−6 test/golden-test-cases/string-class.nix.golden+3−6 test/golden-test-cases/stripe-haskell.nix.golden+3−6 test/golden-test-cases/svg-tree.nix.golden+5−8 test/golden-test-cases/swagger.nix.golden+5−7 test/golden-test-cases/system-argv0.nix.golden+3−7 test/golden-test-cases/system-fileio.nix.golden+3−6 test/golden-test-cases/system-filepath.nix.golden+3−6 test/golden-test-cases/tagged.nix.golden+3−6 test/golden-test-cases/taggy.nix.golden+3−6 test/golden-test-cases/tagstream-conduit.nix.golden+4−7 test/golden-test-cases/tasty-hedgehog.nix.golden+3−6 test/golden-test-cases/tasty-rerun.nix.golden+4−8 test/golden-test-cases/tce-conf.nix.golden+3−6 test/golden-test-cases/terminal-progress-bar.nix.golden+4−7 test/golden-test-cases/test-fixture.nix.golden+5−7 test/golden-test-cases/texmath.nix.golden+5−9 test/golden-test-cases/text-icu.nix.golden+4−8 test/golden-test-cases/text-postgresql.nix.golden+4−7 test/golden-test-cases/th-expand-syns.nix.golden+3−7 test/golden-test-cases/these.nix.golden+5−8 test/golden-test-cases/timezone-series.nix.golden+3−6 test/golden-test-cases/transformers-compat.nix.golden+3−6 test/golden-test-cases/transformers-lift.nix.golden+3−7 test/golden-test-cases/tree-fun.nix.golden+3−6 test/golden-test-cases/ttrie.nix.golden+4−7 test/golden-test-cases/tuple-th.nix.golden+3−6 test/golden-test-cases/tuples-homogenous-h98.nix.golden+3−6 test/golden-test-cases/turtle-options.nix.golden+3−6 test/golden-test-cases/type-operators.nix.golden+3−6 test/golden-test-cases/type-spec.nix.golden+3−6 test/golden-test-cases/unicode-show.nix.golden+3−6 test/golden-test-cases/unique.nix.golden+3−6 test/golden-test-cases/unix-bytestring.nix.golden+3−6 test/golden-test-cases/unlit.nix.golden+3−6 test/golden-test-cases/utility-ht.nix.golden+3−6 test/golden-test-cases/validity-aeson.nix.golden+4−8 test/golden-test-cases/validity-containers.nix.golden+3−6 test/golden-test-cases/vector-mmap.nix.golden+3−6 test/golden-test-cases/vivid-supercollider.nix.golden+4−7 test/golden-test-cases/vty.nix.golden+6−9 test/golden-test-cases/wai-cors.nix.golden+4−7 test/golden-test-cases/wai-middleware-auth.nix.golden+6−9 test/golden-test-cases/wai-middleware-caching-redis.nix.golden+4−7 test/golden-test-cases/wai-middleware-prometheus.nix.golden+3−6 test/golden-test-cases/warp.nix.golden+7−10 test/golden-test-cases/weigh.nix.golden+5−11 test/golden-test-cases/xml-hamlet.nix.golden+4−7 test/golden-test-cases/xmonad-contrib.nix.golden+4−8 test/golden-test-cases/yahoo-finance-api.nix.golden+4−7 test/golden-test-cases/yesod-form-bootstrap4.nix.golden+3−6 test/golden-test-cases/yesod-gitrepo.nix.golden+4−8 test/golden-test-cases/yesod-recaptcha2.nix.golden+3−6 test/golden-test-cases/zlib.nix.golden+3−6 update-hackage-snapshot.sh+19 update-nixpkgs.sh+1−1 update-stackage.sh+15−7
.travis.yml+137−79
@@ -1,103 +1,161 @@
11# This Travis job script has been generated by a script via
22#
3−# runghc make_travis_yml_2.hs '--doctest' '--doctest-options=-i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen' '--hlint' '-o' '.travis.yml' 'cabal2nix.cabal'
3+# haskell-ci '--installed=+all -Cabal' '--hlint' '--doctest' '--doctest-options=-i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen' '-o' '.travis.yml' 'cabal2nix.cabal' '--head-hackage' '--head-hackage-jobs' '> 8.8'
44#
5−# For more information, see https://github.com/hvr/multi-ghc-travis
5+# For more information, see https://github.com/haskell-CI/haskell-ci
66#
7+# version: 0.9.20200306
8+#
9+version: ~> 1.0
710language: c
8−sudo: false
9−
11+os: linux
12+dist: xenial
1013git:
11− submodules: false # whether to recursively clone submodules
12−
14+ # whether to recursively clone submodules
15+ submodules: false
1316cache:
1417 directories:
1518 - $HOME/.cabal/packages
1619 - $HOME/.cabal/store
17−
20+ - $HOME/.hlint
1821before_cache:
19− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
22+ - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
2023 # remove files that are regenerated by 'cabal update'
21− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.*
22− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/*.json
23− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.cache
24− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
25− - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
26−
27− - rm -rfv $HOME/.cabal/packages/head.hackage
28−
29−matrix:
24+ - rm -fv $CABALHOME/packages/hackage.haskell.org/00-index.*
25+ - rm -fv $CABALHOME/packages/hackage.haskell.org/*.json
26+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.cache
27+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
28+ - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
29+ - rm -rfv $CABALHOME/packages/head.hackage
30+jobs:
3031 include:
31− - compiler: "ghc-8.2.2"
32− # env: TEST=--disable-tests BENCH=--disable-benchmarks
33− addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.2], sources: [hvr-ghc]}}
34−
32+ - compiler: ghc-8.10.1
33+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}
34+ os: linux
35+ - compiler: ghc-8.8.3
36+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.0"]}}
37+ os: linux
38+ - compiler: ghc-8.6.5
39+ addons: {"apt":{"sources":[{"sourceline":"deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.0"]}}
40+ os: linux
41+ allow_failures:
42+ - compiler: ghc-8.8.3
43+ - compiler: ghc-8.10.1
3544before_install:
36− - HC=${CC}
37− - HCPKG=${HC/ghc/ghc-pkg}
45+ - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
46+ - WITHCOMPILER="-w $HC"
47+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
48+ - HCPKG="$HC-pkg"
3849 - unset CC
39− - ROOTDIR=$(pwd)
40− - mkdir -p $HOME/.local/bin
41− - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
42− - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
50+ - CABAL=/opt/ghc/bin/cabal
51+ - CABALHOME=$HOME/.cabal
52+ - export PATH="$CABALHOME/bin:$PATH"
53+ - TOP=$(pwd)
54+ - "HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')"
4355 - echo $HCNUMVER
44−
56+ - CABAL="$CABAL -vnormal+nowrap"
57+ - set -o pipefail
58+ - TEST=--enable-tests
59+ - BENCH=--enable-benchmarks
60+ - HEADHACKAGE=false
61+ - if [ $HCNUMVER -ge 80800 ] ; then HEADHACKAGE=true ; fi
62+ - rm -f $CABALHOME/config
63+ - |
64+ echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
65+ echo "remote-build-reporting: anonymous" >> $CABALHOME/config
66+ echo "write-ghc-environment-files: always" >> $CABALHOME/config
67+ echo "remote-repo-cache: $CABALHOME/packages" >> $CABALHOME/config
68+ echo "logs-dir: $CABALHOME/logs" >> $CABALHOME/config
69+ echo "world-file: $CABALHOME/world" >> $CABALHOME/config
70+ echo "extra-prog-path: $CABALHOME/bin" >> $CABALHOME/config
71+ echo "symlink-bindir: $CABALHOME/bin" >> $CABALHOME/config
72+ echo "installdir: $CABALHOME/bin" >> $CABALHOME/config
73+ echo "build-summary: $CABALHOME/logs/build.log" >> $CABALHOME/config
74+ echo "store-dir: $CABALHOME/store" >> $CABALHOME/config
75+ echo "install-dirs user" >> $CABALHOME/config
76+ echo " prefix: $CABALHOME" >> $CABALHOME/config
77+ echo "repository hackage.haskell.org" >> $CABALHOME/config
78+ echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
79+ - |
80+ if $HEADHACKAGE; then
81+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
82+ echo "repository head.hackage.ghc.haskell.org" >> $CABALHOME/config
83+ echo " url: https://ghc.gitlab.haskell.org/head.hackage/" >> $CABALHOME/config
84+ echo " secure: True" >> $CABALHOME/config
85+ echo " root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >> $CABALHOME/config
86+ echo " 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >> $CABALHOME/config
87+ echo " f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> $CABALHOME/config
88+ echo " key-threshold: 3" >> $CABALHOME/config
89+ fi
4590install:
46− - cabal --version
91+ - ${CABAL} --version
4792 - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
48− - BENCH=${BENCH---enable-benchmarks}
49− - TEST=${TEST---enable-tests}
50− - HADDOCK=${HADDOCK-true}
51− - INSTALLED=${INSTALLED-true}
52− - GHCHEAD=${GHCHEAD-false}
53− - travis_retry cabal update -v
54− - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
55− - rm -fv cabal.project cabal.project.local
56− - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
57− - if [ $HCNUMVER -ge 80000 ]; then cabal new-install -w ${HC} --symlink-bindir=$HOME/.local/bin doctest --constraint='doctest ==0.13.*'; fi
58− - if [ $HCNUMVER -eq 80202 ]; then cabal new-install -w ${HC} --symlink-bindir=$HOME/.local/bin hlint --constraint='hlint ==2.0.*'; fi
59− - "printf 'packages: \".\"\\n' > cabal.project"
60− - cat cabal.project
61− - if [ -f "./configure.ac" ]; then
62− (cd "." && autoreconf -i);
63− fi
64− - rm -f cabal.project.freeze
65− - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
66− - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
67− - rm -rf "."/.ghc.environment.* "."/dist
68− - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
69−
70−# Here starts the actual work to be performed for the package under test;
71−# any command which exits with a non-zero exit code causes the build to fail.
93+ - |
94+ echo "program-default-options" >> $CABALHOME/config
95+ echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
96+ - cat $CABALHOME/config
97+ - rm -fv cabal.project cabal.project.local cabal.project.freeze
98+ - travis_retry ${CABAL} v2-update -v
99+ - (cd /tmp && ${CABAL} v2-install $WITHCOMPILER -j2 doctest --constraint='doctest ==0.16.2.*')
100+ - if [ $HCNUMVER -lt 80800 ] ; then HLINTVER=$(cd /tmp && (${CABAL} v2-install -v $WITHCOMPILER --dry-run hlint --constraint='hlint ==2.2.*' | perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint version $HLINTVER" ; fi
101+ - "if [ $HCNUMVER -lt 80800 ] ; then if [ ! -e $HOME/.hlint/hlint-$HLINTVER/hlint ]; then echo \"Downloading HLint version $HLINTVER\"; mkdir -p $HOME/.hlint; curl --write-out 'Status Code: %{http_code} Redirects: %{num_redirects} Total time: %{time_total} Total Dsize: %{size_download}\\n' --silent --location --output $HOME/.hlint/hlint-$HLINTVER.tar.gz \"https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz\"; tar -xzv -f $HOME/.hlint/hlint-$HLINTVER.tar.gz -C $HOME/.hlint; fi ; fi"
102+ - if [ $HCNUMVER -lt 80800 ] ; then mkdir -p $CABALHOME/bin && ln -sf "$HOME/.hlint/hlint-$HLINTVER/hlint" $CABALHOME/bin/hlint ; fi
103+ - if [ $HCNUMVER -lt 80800 ] ; then hlint --version ; fi
104+ # Generate cabal.project
105+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
106+ - touch cabal.project
107+ - |
108+ echo "packages: ." >> cabal.project
109+ - |
110+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(Cabal|cabal2nix)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
111+ - cat cabal.project || true
112+ - cat cabal.project.local || true
113+ - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
114+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}
115+ - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 's/any.//'"
116+ - rm cabal.project.freeze
117+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all
118+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks --dep -j2 all
72119script:
73− # test that source-distributions can be generated
74− - (cd "." && cabal sdist)
75− - mv "."/dist/cabal2nix-*.tar.gz ${DISTDIR}/
120+ - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
121+ # Packaging...
122+ - ${CABAL} v2-sdist all
123+ # Unpacking...
124+ - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
76125 - cd ${DISTDIR} || false
77− - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
78− - "printf 'packages: cabal2nix-*/*.cabal\\n' > cabal.project"
79− - cat cabal.project
126+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec tar -xvf '{}' \;
127+ - find . -maxdepth 1 -type f -name '*.tar.gz' -exec rm '{}' \;
128+ - PKGDIR_cabal2nix="$(find . -maxdepth 1 -type d -regex '.*/cabal2nix-[0-9.]*')"
129+ # Generate cabal.project
130+ - rm -rf cabal.project cabal.project.local cabal.project.freeze
131+ - touch cabal.project
132+ - |
133+ echo "packages: ${PKGDIR_cabal2nix}" >> cabal.project
134+ - |
135+ - "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed 's/-[^-]*$//' | (grep -vE -- '^(Cabal|cabal2nix)$' || true) | sed 's/^/constraints: /' | sed 's/$/ installed/' >> cabal.project.local; done"
136+ - cat cabal.project || true
137+ - cat cabal.project.local || true
138+ # Building...
80139 # this builds all libraries and executables (without tests/benchmarks)
81− - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
82−
83− # Build with installed constraints for packages in global-db
84− - 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
85−
140+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
141+ # Building with tests and benchmarks...
86142 # build & run tests, build benchmarks
87− - cabal new-build -w ${HC} ${TEST} ${BENCH} all
88−
89− # doctest
90− - if [ $HCNUMVER -ge 80000 ]; then (cd cabal2nix-* && doctest -i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen src); fi
91−
92− # hlint
93− - if [ $HCNUMVER -eq 80202 ]; then (cd cabal2nix-* && hlint src); fi
94−
95− # cabal check
96− - (cd cabal2nix-* && cabal check)
97−
98− # haddock
99− - rm -rf ./dist-newstyle
100− - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
143+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all
144+ # Testing...
145+ - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all
146+ # Doctest...
147+ - (cd ${PKGDIR_cabal2nix} && doctest -i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen src)
148+ # HLint..
149+ - if [ $HCNUMVER -lt 80800 ] ; then (cd ${PKGDIR_cabal2nix} && hlint src) ; fi
150+ - if [ $HCNUMVER -lt 80800 ] ; then (cd ${PKGDIR_cabal2nix} && hlint hackage2nix) ; fi
151+ - if [ $HCNUMVER -lt 80800 ] ; then (cd ${PKGDIR_cabal2nix} && hlint cabal2nix) ; fi
152+ # cabal check...
153+ - (cd ${PKGDIR_cabal2nix} && ${CABAL} -vnormal check)
154+ # haddock...
155+ - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} all
156+ # Building without installed constraints for packages in global-db...
157+ - rm -f cabal.project.local
158+ - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
101159
102−# REGENDATA ["--doctest","--doctest-options=-i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen","--hlint","-o",".travis.yml","cabal2nix.cabal"]
160+# REGENDATA ("0.9.20200306",["--installed=+all -Cabal","--hlint","--doctest","--doctest-options=-i ../dist-newstyle/build/*/*/cabal2nix-*/build/autogen","-o",".travis.yml","cabal2nix.cabal","--head-hackage","--head-hackage-jobs","> 8.8"])
103161# EOF
README.md+12−7
@@ -1,6 +1,11 @@
11Cabal2nix
22=========
33
4+[![hackage release](https://img.shields.io/hackage/v/cabal2nix.svg?label=hackage)](http://hackage.haskell.org/package/cabal2nix)
5+[![stackage LTS package](http://stackage.org/package/cabal2nix/badge/lts)](http://stackage.org/lts/package/cabal2nix)
6+[![stackage Nightly package](http://stackage.org/package/cabal2nix/badge/nightly)](http://stackage.org/nightly/package/cabal2nix)
7+[![travis build status](https://img.shields.io/travis/NixOS/cabal2nix/master.svg?label=travis+build)](https://travis-ci.org/NixOS/cabal2nix)
8+
49`cabal2nix` converts a single Cabal file into a single Nix build expression.
510For example:
611
@@ -22,16 +27,16 @@ direct `http://host/path/pkg.cabal` URL can be provided, as well as a
2227`file:///local/path/pkg.cabal` URI that doesn't depend on network access.
2328However, if the source hash is not already in `cabal2nix`'s cache or provided
2429using the `--sha256` option, `cabal2nix` still needs to download the source
25−code to compute the hash, which obviously still causes network traffic. Run the
26−utility with `--help` to see the complete list of supported command line flags.
30+code to compute the hash, which still causes network traffic. Run the utility
31+with `--help` to see the complete list of supported command-line flags.
2732
28−Detailed instructions how to use those generated files with Nix can be found at
29−http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure.
33+Detailed instructions on how to use those generated files with Nix can be found at
34+https://nixos.org/nixpkgs/manual/#how-to-create-nix-builds-for-your-own-private-haskell-packages.
3035
3136`cabal2nix` can also build derivations for projects from other sources than
32−hackage. You only need to provide an URI that points to a cabal project. The
33−most common usecase for this is probably to generate a derivation for a project
34−on the local file system:
37+Hackage. You only need to provide a URI that points to a cabal project. The
38+most common use-case for this is probably to generate a derivation for a
39+project on the local file system:
3540
3641 $ cabal get mtl-2.2.1 && cd mtl-2.2.1
3742 $ cabal2nix .
cabal2nix.cabal+138−179
@@ -1,193 +1,152 @@
1−name: cabal2nix
2−version: 2.8.2
3−synopsis: Convert Cabal files into Nix build instructions.
4−category: Distribution, Nix
5−stability: stable
6−homepage: https://github.com/nixos/cabal2nix#readme
7−bug-reports: https://github.com/nixos/cabal2nix/issues
8−author: Peter Simons,
9− Andres Loeh,
10− Benno Fünfstück,
11− Mateusz Kowalczyk,
12− Michael Alan Dorman,
13− Tom Smalley,
14− Mathijs Kwik,
15− Shea Levy,
16− Dmitry Malikov,
17− Eric Seidel,
18− Jacob Mitchell,
19− Graham Christensen,
20− Hamish Mackenzie,
21− Nikolay Amiantov,
22− Aycan iRiCAN,
23− Bryan Gardiner,
24− Joe Hermaszewski,
25− John Wiegley,
26− Philipp Hausmann,
27− Spencer Janssen,
28− Tom Hunger,
29− William Casarin,
30− koral,
31− ksaric,
32− Adam Vogt,
33− Alexey Shmalko,
34− Corey O'Connor,
35− Cray Elliott,
36− David Johnson,
37− Dmitry Bushev,
38− Domen Kožar,
39− Felix Kunzmann,
40− Gabriel Ebner,
41− Gergely Risko,
42− Joachim Fasting,
43− John Albietz,
44− John Chee,
45− Jussi Maki,
46− Lisanna Dettwyler,
47− Mark Laws,
48− Mark Wotton,
49− Matthew Pickering,
50− Matthew Stewart,
51− Matvey Aksenov,
52− Nicholas Clarke,
53− Nicolas Rolland,
54− Oliver Charles,
55− Pascal Wittmann,
56− Patrick John Wheeler,
57− Phil de Joux,
58− Piotr Bogdan,
59− Profpatsch,
60− Raymond Gauthier,
61− Renzo Carbonara,
62− Rodney Lorrimar,
63− Sibi,
64− Sukant Hajra,
65− Tanner Doshier,
66− Vaibhav Sagar,
67− Viktar Basharymau,
68− danbst,
69− karsten gebbert,
70− laMudri,
71− Александр Цамутали
72−maintainer: Peter Simons <simons@cryp.to>
73−license: BSD3
74−license-file: LICENSE
75−tested-with: GHC == 8.2.2
76−build-type: Simple
77−cabal-version: 1.24
78−
1+name: cabal2nix
2+version: 2.15.1
3+synopsis: Convert Cabal files into Nix build instructions.
794description:
80− Convert Cabal files into Nix build instructions. Users of Nix can install the
81− latest version by running:
5+ Convert Cabal files into Nix build instructions. Users of Nix can install the latest
6+ version by running:
827 .
838 > nix-env -i cabal2nix
84−
85−extra-source-files:
86− README.md
87− test/golden-test-cases/*.cabal
88− test/golden-test-cases/*.nix.golden
9+license: BSD3
10+license-file: LICENSE
11+author: Peter Simons, Andres Loeh, Benno Fünfstück, Mateusz Kowalczyk,
12+ Michael Alan Dorman, Tom Smalley, Mathijs Kwik, Shea Levy, Dmitry
13+ Malikov, Eric Seidel, Jacob Mitchell, Graham Christensen,
14+ Hamish Mackenzie, Nikolay Amiantov, Aycan iRiCAN, Bryan
15+ Gardiner, Joe Hermaszewski, John Wiegley, Philipp Hausmann,
16+ Spencer Janssen, Tom Hunger, William Casarin, koral,
17+ ksaric, Adam Vogt, Alexey Shmalko, Corey O'Connor, Cray
18+ Elliott, David Johnson, Dmitry Bushev, Domen Kožar, Felix
19+ Kunzmann, Gabriel Ebner, Gergely Risko, Joachim Fasting,
20+ John Albietz, John Chee, Jussi Maki, Lisanna Dettwyler,
21+ Mark Laws, Mark Wotton, Matthew Pickering, Matthew Stewart,
22+ Matvey Aksenov, Nicholas Clarke, Nicolas Rolland, Oliver
23+ Charles, Pascal Wittmann, Patrick John Wheeler, Phil de
24+ Joux, Piotr Bogdan, Profpatsch, Raymond Gauthier, Renzo
25+ Carbonara, Rodney Lorrimar, Sibi, Sukant Hajra, Tanner
26+ Doshier, Vaibhav Sagar, Viktar Basharymau, danbst, karsten
27+ gebbert, laMudri, Александр Цамутали
28+maintainer: Peter Simons <simons@cryp.to>
29+stability: stable
30+tested-with: GHC == 8.6.5, GHC == 8.8.3, GHC == 8.10.1
31+category: Distribution, Nix
32+homepage: https://github.com/nixos/cabal2nix#readme
33+bug-reports: https://github.com/nixos/cabal2nix/issues
34+build-type: Simple
35+extra-source-files: README.md
36+ test/golden-test-cases/*.cabal
37+ test/golden-test-cases/*.nix.golden
38+cabal-version: 1.24
8939
9040source-repository head
91− type: git
41+ type: git
9242 location: https://github.com/nixos/cabal2nix
9343
9444library
95− hs-source-dirs:
96− src
97− other-extensions: CPP DeriveGeneric FlexibleInstances MultiParamTypeClasses OverloadedStrings RecordWildCards ScopedTypeVariables StandaloneDeriving TemplateHaskell
98− ghc-options: -Wall
99− build-depends:
100− Cabal >2
101− , aeson
102− , ansi-wl-pprint
103− , base <5
104− , bytestring
105− , containers
106− , deepseq >=1.4
107− , directory
108− , distribution-nixpkgs >=1.1
109− , filepath
110− , hackage-db >2
111− , hopenssl >=2
112− , hpack >= 0.26
113− , language-nix
114− , lens
115− , optparse-applicative
116− , pretty >=1.1.2
117− , process
118− , split
119− , text
120− , time
121− , transformers
122− , yaml
123− exposed-modules:
124− Cabal2nix
125− Distribution.Nixpkgs.Fetch
126− Distribution.Nixpkgs.Haskell
127− Distribution.Nixpkgs.Haskell.BuildInfo
128− Distribution.Nixpkgs.Haskell.Constraint
129− Distribution.Nixpkgs.Haskell.Derivation
130− Distribution.Nixpkgs.Haskell.FromCabal
131− Distribution.Nixpkgs.Haskell.FromCabal.Configuration
132− Distribution.Nixpkgs.Haskell.FromCabal.Flags
133− Distribution.Nixpkgs.Haskell.FromCabal.License
134− Distribution.Nixpkgs.Haskell.FromCabal.Name
135− Distribution.Nixpkgs.Haskell.FromCabal.Normalize
136− Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
137− Distribution.Nixpkgs.Haskell.Hackage
138− Distribution.Nixpkgs.Haskell.OrphanInstances
139− Distribution.Nixpkgs.Haskell.PackageSourceSpec
140− other-modules:
141− Paths_cabal2nix
142− default-language: Haskell2010
45+ exposed-modules: Cabal2nix
46+ Distribution.Nixpkgs.Fetch
47+ Distribution.Nixpkgs.Haskell
48+ Distribution.Nixpkgs.Haskell.BuildInfo
49+ Distribution.Nixpkgs.Haskell.Constraint
50+ Distribution.Nixpkgs.Haskell.Derivation
51+ Distribution.Nixpkgs.Haskell.FromCabal
52+ Distribution.Nixpkgs.Haskell.FromCabal.Configuration
53+ Distribution.Nixpkgs.Haskell.FromCabal.Flags
54+ Distribution.Nixpkgs.Haskell.FromCabal.License
55+ Distribution.Nixpkgs.Haskell.FromCabal.Name
56+ Distribution.Nixpkgs.Haskell.FromCabal.Normalize
57+ Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
58+ Distribution.Nixpkgs.Haskell.Hackage
59+ Distribution.Nixpkgs.Haskell.OrphanInstances
60+ Distribution.Nixpkgs.Haskell.PackageSourceSpec
61+ other-modules: Paths_cabal2nix
62+ hs-source-dirs: src
63+ build-depends: base > 4.11
64+ , Cabal == 3.0.*
65+ , aeson > 1
66+ , ansi-wl-pprint
67+ , bytestring
68+ , containers >= 0.5.9
69+ , deepseq >= 1.4
70+ , directory
71+ , distribution-nixpkgs >= 1.3.1
72+ , filepath
73+ , hackage-db >= 2.0.1
74+ , hopenssl >= 2
75+ , hpack >= 0.29.6
76+ , language-nix
77+ , lens
78+ , optparse-applicative
79+ , pretty >= 1.1.2
80+ , process
81+ , split
82+ , text
83+ , time
84+ , transformers
85+ , yaml
86+ default-language: Haskell2010
87+ other-extensions: MultiParamTypeClasses
88+ ScopedTypeVariables
89+ FlexibleInstances
90+ CPP
91+ TemplateHaskell
92+ StandaloneDeriving
93+ RecordWildCards
94+ OverloadedStrings
95+ DeriveGeneric
96+ ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates
97+ -Wredundant-constraints
14398
14499executable cabal2nix
145− main-is: Main.hs
146− hs-source-dirs: cabal2nix
147− ghc-options: -Wall
148− build-depends: base, cabal2nix
149− default-language: Haskell2010
100+ main-is: Main.hs
101+ hs-source-dirs: cabal2nix
102+ build-depends: base, cabal2nix
103+ default-language: Haskell2010
104+ ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates
105+ -Wredundant-constraints
150106
151107executable hackage2nix
152− main-is: Main.hs
153− hs-source-dirs: hackage2nix
154− ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
155− build-depends:
156− Cabal >2
157− , aeson
158− , base <5
159− , bytestring
160− , cabal2nix
161− , containers
162− , directory
163− , distribution-nixpkgs >=1.1
164− , filepath
165− , hopenssl >=2
166− , language-nix
167− , lens
168− , monad-par
169− , monad-par-extras
170− , mtl
171− , optparse-applicative
172− , pretty >=1.1.2
173− , utf8-string
174− other-modules:
175− Paths_cabal2nix
176− HackageGit
177− default-language: Haskell2010
108+ main-is: Main.hs
109+ other-modules: HackageGit
110+ Paths_cabal2nix
111+ hs-source-dirs: hackage2nix
112+ build-depends: base < 5
113+ , Cabal
114+ , aeson
115+ , bytestring
116+ , cabal2nix
117+ , containers
118+ , directory
119+ , distribution-nixpkgs >= 1.2
120+ , filepath
121+ , hopenssl >= 2
122+ , language-nix
123+ , lens
124+ , monad-par
125+ , monad-par-extras
126+ , mtl
127+ , optparse-applicative
128+ , pretty >= 1.1.2
129+ default-language: Haskell2010
130+ ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates
131+ -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-maxN16
178132
179133test-suite regression-test
180− type: exitcode-stdio-1.0
181− main-is: Main.hs
182− hs-source-dirs: test
183− build-depends: base
184− , Cabal > 2
185− , cabal2nix
186− , filepath
187− , language-nix
188− , lens
189− , pretty
190− , tasty
191− , tasty-golden
192− ghc-options: -Wall
193− default-language: Haskell2010
134+ type: exitcode-stdio-1.0
135+ main-is: Main.hs
136+ hs-source-dirs: test
137+ build-depends: base
138+ , Cabal
139+ , cabal2nix
140+ , containers
141+ , directory
142+ , filepath
143+ , language-nix
144+ , lens
145+ , pretty
146+ , process > 1.2
147+ , tasty
148+ , tasty-golden
149+ default-language: Haskell2010
150+ build-tools: cabal2nix
151+ ghc-options: -Wall -Wcompat -Wincomplete-uni-patterns -Wincomplete-record-updates
152+ -Wredundant-constraints -threaded -with-rtsopts=-K64K
doc/01-use-function-application-to-escape-override-hell.md+1−1
@@ -116,7 +116,7 @@ reflection. Nixpkgs defines the Haskell package set recursively as a function
116116produce and then uses that information to the produce the attribute set it's
117117already received as an argument. It's a mind-boggling way to define a recursive
118118attribute set `rec { ... }` without actually using the `rec` keyword. Every
119−computable function of this kind has a fixed point: a value `x` that satifies
119+computable function of this kind has a fixed point: a value `x` that satisfies
120120`f x = x`. That `x` is the result we actually want --- it's an ordinary
121121attribute set with all the `self`-references resolved and replaced by actual
122122values. The details of fixed points aren't important, though. What's important
doc/hal8.md+1−1
@@ -190,7 +190,7 @@ Haskell Platform later, so one doesn't have to worry that every single install
190190is going to be that expensive.
191191
192192In its last step, `nix-env` creates a "user environment" at
193−`$HOME/.nix-profile`, which simplies use of the installed packages a lot. That
193+`$HOME/.nix-profile`, which simplifies use of the installed packages a lot. That
194194environment uses symlinks to create a view of the Nix store that combines those
195195packages that have been installed into a single hierarchy. For example, the
196196path `~/.nix-profile/bin/ghc` will be a symlink to
hackage2nix/HackageGit.hs+4−9
@@ -10,17 +10,15 @@ module HackageGit
1010import Control.Lens hiding ( (<.>) )
1111import Control.Monad
1212import Data.Aeson
13−import Data.ByteString.Char8 ( ByteString )
1413import qualified Data.ByteString.Char8 as BS
1514import Data.Map as Map
1615import Data.Set as Set
1716import Data.String
18−import Data.String.UTF8 ( toString, fromRep )
1917import Distribution.Nixpkgs.Hashes
2018import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2119import Distribution.Package
2220import Distribution.PackageDescription
23−import Distribution.PackageDescription.Parse ( parseGenericPackageDescription, ParseResult(..) )
21+import Distribution.PackageDescription.Parsec ( parseGenericPackageDescriptionMaybe )
2422import Distribution.Text
2523import Distribution.Version
2624import OpenSSL.Digest ( digest, digestByName )
@@ -42,18 +40,15 @@ getSubDirs path = do
4240 let isDirectory p = doesDirectoryExist (path </> p)
4341 getDirectoryContents path >>= filterM isDirectory . Prelude.filter (\x -> head x /= '.')
4442
45−decodeUTF8 :: ByteString -> String
46−decodeUTF8 = toString . fromRep
47−
4843type SHA256Hash = String
4944
5045readPackage :: FilePath -> PackageIdentifier -> IO (GenericPackageDescription, SHA256Hash)
5146readPackage dirPrefix (PackageIdentifier name version) = do
5247 let cabalFile = dirPrefix </> unPackageName name </> display version </> unPackageName name <.> "cabal"
5348 buf <- BS.readFile cabalFile
54− cabal <- case parseGenericPackageDescription (decodeUTF8 buf) of
55− ParseOk _ a -> return a
56− ParseFailed err -> fail (cabalFile ++ ": " ++ show err)
49+ cabal <- case parseGenericPackageDescriptionMaybe buf of
50+ Just a -> return a
51+ Nothing -> fail ("cannot parse cabal file " ++ cabalFile)
5752 return (cabal, printSHA256 (digest (digestByName "sha256") buf))
5853
5954declareLenses [d|
hackage2nix/Main.hs+30−19
@@ -10,11 +10,10 @@ import Control.Monad
1010import Control.Monad.Par.Combinator
1111import Control.Monad.Par.IO
1212import Control.Monad.Trans ( liftIO )
13−import Data.List
13+import Data.List ( intercalate )
1414import Data.Map.Strict ( Map )
1515import qualified Data.Map.Strict as Map
1616import Data.Maybe
17−import Data.Monoid
1817import Data.Set ( Set )
1918import qualified Data.Set as Set
2019import Data.String
@@ -24,10 +23,11 @@ import Distribution.Nixpkgs.Haskell.Constraint
2423import Distribution.Nixpkgs.Haskell.FromCabal
2524import Distribution.Nixpkgs.Haskell.FromCabal.Configuration as Config
2625import Distribution.Nixpkgs.Haskell.FromCabal.Flags
26+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2727import Distribution.Nixpkgs.Meta
2828import Distribution.Nixpkgs.PackageMap
2929import Distribution.Package
30−import Distribution.PackageDescription hiding ( options, buildDepends, extraLibs, buildTools )
30+import Distribution.PackageDescription hiding ( options, extraLibs, buildTools, homepage )
3131import Distribution.System
3232import Distribution.Text
3333import Distribution.Version
@@ -63,7 +63,7 @@ main = do
6363 pinfo :: ParserInfo CLI
6464 pinfo = info
6565 ( helper
66− <*> infoOption ("hackage2nix " ++ display Main.version) (long "version" <> help "Show version number")
66+ <*> infoOption ("hackage2nix " ++ prettyShow Main.version) (long "version" <> help "Show version number")
6767 <*> cliOptions
6868 )
6969 ( fullDesc
@@ -72,15 +72,15 @@ main = do
7272 CLI {..} <- execParser pinfo
7373
7474 config <- readConfiguration (nixpkgsRepository </> configFile)
75− nixpkgs <- readNixpkgPackageMap nixpkgsRepository Nothing
75+ nixpkgs <- readNixpkgPackageMap ["-f", nixpkgsRepository, "--arg", "config", "{ allowAliases = false; }"]
7676 preferredVersions <- readPreferredVersions (fromMaybe (hackageRepository </> "preferred-versions") preferredVersionsFile)
7777 let fixup = Map.delete "acme-everything" -- TODO: https://github.com/NixOS/cabal2nix/issues/164
7878 . Map.delete "som" -- TODO: https://github.com/NixOS/cabal2nix/issues/164
7979 . Map.delete "type" -- TODO: https://github.com/NixOS/cabal2nix/issues/163
8080 . Map.delete "control-invariants" -- TODO: depends on "assert"
81− . over (at ("hermes")) ((fmap (set (contains "1.3.4.3") False))) -- TODO: https://github.com/haskell/hackage-server/issues/436
82− . over (at ("gogol-admin-reports")) ((fmap (set (contains "0.2.0") False))) -- TODO: https://github.com/commercialhaskell/all-cabal-hashes/issues/11
83− . over (at ("wai-middleware-prometheus")) ((fmap (set (contains "0.2.0") False))) -- TODO: https://github.com/commercialhaskell/all-cabal-hashes/issues/15
81+ . Map.delete "with" -- TODO: https://github.com/NixOS/cabal2nix/issues/164
82+ . Map.delete "telega" -- TODO: depends on "with"
83+ . over (at "hermes") (fmap (set (contains "1.3.4.3") False)) -- TODO: https://github.com/haskell/hackage-server/issues/436
8484 hackage <- fixup <$> readHackage hackageRepository
8585 let
8686 hackagePackagesFile :: FilePath
@@ -93,7 +93,7 @@ main = do
9393 latestVersionSet = Map.map Set.findMax (Map.filter (not . Set.null) (Map.mapWithKey (enforcePreferredVersions preferredVersions) hackage))
9494
9595 defaultPackageOverridesSet :: PackageSet
96− defaultPackageOverridesSet = Map.fromList [ (name, resolveConstraint c hackage) | c@(Dependency name _) <- defaultPackageOverrides config ]
96+ defaultPackageOverridesSet = Map.fromList [ (name, resolveConstraint c hackage) | c@(Dependency name _ _) <- defaultPackageOverrides config ]
9797
9898 generatedDefaultPackageSet :: PackageSet
9999 generatedDefaultPackageSet = (defaultPackageOverridesSet `Map.union` latestVersionSet) `Map.difference` corePackageSet
@@ -106,7 +106,7 @@ main = do
106106
107107 extraPackageSet :: PackageMultiSet
108108 extraPackageSet = Map.unionsWith Set.union
109− [ Map.singleton name (Set.singleton (resolveConstraint c hackage)) | c@(Dependency name _) <- extraPackages config ]
109+ [ Map.singleton name (Set.singleton (resolveConstraint c hackage)) | c@(Dependency name _ _) <- extraPackages config ]
110110
111111 db :: PackageMultiSet
112112 db = Map.unionsWith Set.union [ Map.map Set.singleton generatedDefaultPackageSet
@@ -116,7 +116,7 @@ main = do
116116 ]
117117
118118 haskellResolver :: Dependency -> Bool
119− haskellResolver (Dependency name vrange)
119+ haskellResolver (Dependency name vrange _)
120120 | Just v <- Map.lookup name corePackageSet = v `withinRange` vrange
121121 | Just v <- Map.lookup name generatedDefaultPackageSet = v `withinRange` vrange
122122 | otherwise = False
@@ -135,8 +135,13 @@ main = do
135135 (descr, cabalSHA256) <- readPackage hackageRepository pkgId
136136 meta <- readPackageMeta hackageRepository pkgId
137137
138− let isInDefaultPackageSet :: Bool
139− isInDefaultPackageSet = maybe False (== v) (Map.lookup name generatedDefaultPackageSet)
138+ let isInDefaultPackageSet, isHydraEnabled, isBroken :: Bool
139+ isInDefaultPackageSet = (== Just v) (Map.lookup name generatedDefaultPackageSet)
140+ isHydraEnabled = isInDefaultPackageSet && not (isBroken || name `Set.member` dontDistributePackages config)
141+ isBroken = any (withinRange v) [ vr | Dependency pn vr _ <- brokenPackages config, pn == name ]
142+
143+ droppedPlatforms :: Set Platform
144+ droppedPlatforms = Map.findWithDefault mempty name (unsupportedPlatforms config)
140145
141146 tarballSHA256 :: SHA256Hash
142147 tarballSHA256 = fromMaybe (error (display pkgId ++ ": meta data has no hash for the tarball"))
@@ -150,14 +155,17 @@ main = do
150155
151156 drv :: Derivation
152157 drv = fromGenericPackageDescription haskellResolver nixpkgsResolver targetPlatform (compilerInfo config) flagAssignment [] descr
153− & src .~ DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256
158+ & src .~ urlDerivationSource ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") tarballSHA256
154159 & editedCabalFile .~ cabalSHA256
155− & metaSection.hydraPlatforms %~ (`Set.difference` Map.findWithDefault Set.empty name (dontDistributePackages config))
160+ & metaSection.platforms %~ (`Set.difference` Map.findWithDefault Set.empty name (unsupportedPlatforms config))
161+ & metaSection.hydraPlatforms %~ (if Set.null droppedPlatforms then id else (`Set.difference` droppedPlatforms))
162+ & metaSection.hydraPlatforms %~ (if isHydraEnabled then id else const Set.empty)
163+ & metaSection.broken ||~ isBroken
156164 & metaSection.maintainers .~ Map.findWithDefault Set.empty name globalPackageMaintainers
157− & metaSection.hydraPlatforms %~ (if isInDefaultPackageSet then id else const Set.empty)
165+ & metaSection.homepage .~ ""
158166
159167 overrides :: Doc
160− overrides = fcat $ punctuate space [ disp b <> semi | b <- Set.toList ((view (dependencies . each) drv) `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ]
168+ overrides = fcat $ punctuate space [ pPrint b <> semi | b <- Set.toList (view (dependencies . each) drv `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ]
161169 return $ render $ nest 2 $
162170 hang (doubleQuotes (text attr) <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi)
163171
@@ -191,10 +199,13 @@ enforcePreferredVersions cs pkg = Set.filter (\v -> PackageIdentifier pkg v `sat
191199
192200resolveConstraint :: Constraint -> Hackage -> Version
193201resolveConstraint c = fromMaybe (error msg) . resolveConstraint' c
194− where msg = "constraint " ++ display c ++ " cannot be resolved in Hackage"
202+ where msg = unlines [ "constraint " ++ display c ++ " cannot be resolved in Hackage"
203+ , "This could be due the package being missing in the hackage directory"
204+ , "or the file system not being case sensitive."
205+ ]
195206
196207resolveConstraint' :: Constraint -> Hackage -> Maybe Version
197−resolveConstraint' (Dependency name vrange) hackage
208+resolveConstraint' (Dependency name vrange _) hackage
198209 | Just vset' <- Map.lookup name hackage
199210 , vset <- Set.filter (`withinRange` vrange) vset'
200211 , not (Set.null vset) = Just (Set.findMax vset)
hackage2nix/README.md+3
@@ -15,6 +15,9 @@ and we want to check that hackage-packages.nix will be updated correctly.
1515On macOS you can use [this](https://gist.github.com/dixson3/8360571) to create one
1616(you can replace 60g with 4g as that should be plenty).
1717
18+There is a [video on YouTube](https://www.youtube.com/watch?v=qX0mgtSm360)
19+that gives a thorough walk-through of these steps.
20+
1821#### Setup
1922Replace `git@github.com:NixOS/nixpkgs.git` with a fork you have access to.
2023```
src/Cabal2nix.hs+98−46
@@ -1,51 +1,54 @@
1−{-# LANGUAGE RecordWildCards #-}
1+{-# LANGUAGE LambdaCase #-}
22{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE RecordWildCards #-}
34
45module Cabal2nix
5− ( main, cabal2nix, cabal2nix', cabal2nixWithDB
6+ ( main, cabal2nix, cabal2nix', cabal2nixWithDB, parseArgs
7+ , Options(..)
68 )
79 where
810
911import Control.Exception ( bracket )
1012import Control.Lens
11−import Control.Monad ( when )
12−import Data.Maybe ( fromMaybe, isJust )
13−import Data.Monoid ( (<>) )
13+import Control.Monad
14+import Data.List ( intercalate, isPrefixOf )
15+import Data.List.Split
16+import Data.Maybe ( fromMaybe, isJust, listToMaybe )
1417import qualified Data.Set as Set
1518import Data.String
1619import Data.Time
17−import qualified Distribution.Compat.ReadP as P
1820import Distribution.Compiler
1921import Distribution.Nixpkgs.Fetch
2022import Distribution.Nixpkgs.Haskell
2123import Distribution.Nixpkgs.Haskell.FromCabal
22−import Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalizeCabalFlags )
2324import Distribution.Nixpkgs.Haskell.FromCabal.Flags
2425import qualified Distribution.Nixpkgs.Haskell.FromCabal.PostProcess as PP (pkg)
2526import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
27+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2628import Distribution.Nixpkgs.Haskell.PackageSourceSpec
2729import Distribution.Nixpkgs.Meta
28−import Distribution.PackageDescription ( mkFlagName, FlagAssignment )
2930import Distribution.Package ( packageId )
31+import Distribution.PackageDescription ( mkFlagName, mkFlagAssignment, FlagAssignment )
32+import Distribution.Parsec as P
3033import Distribution.Simple.Utils ( lowercase )
3134import Distribution.System
32−import Distribution.Text
3335import Language.Nix
3436import Options.Applicative
3537import Paths_cabal2nix ( version )
3638import System.Environment ( getArgs )
3739import System.IO ( hFlush, hPutStrLn, stdout, stderr )
3840import qualified Text.PrettyPrint.ANSI.Leijen as P2
39−import Text.PrettyPrint.HughesPJClass ( Doc, Pretty(..), text, vcat, hcat, semi )
41+import Text.PrettyPrint.HughesPJClass ( Doc, Pretty(..), text, vcat, hcat, semi, render, prettyShow )
4042
4143data Options = Options
4244 { optSha256 :: Maybe String
4345 , optMaintainer :: [String]
4446--, optPlatform :: [String] -- TODO: fix command line handling of platforms
4547 , optHaddock :: Bool
46− , optHpack :: Bool
48+ , optHpack :: HpackUse
4749 , optDoCheck :: Bool
4850 , optJailbreak :: Bool
51+ , optDoBenchmark :: Bool
4952 , optRevision :: Maybe String
5053 , optHyperlinkSource :: Bool
5154 , optEnableLibraryProfiling :: Bool
@@ -59,9 +62,10 @@ data Options = Options
5962 , optSystem :: Platform
6063 , optSubpath :: Maybe FilePath
6164 , optHackageSnapshot :: Maybe UTCTime
65+ , optNixpkgsIdentifier :: NixpkgsResolver
6266 , optUrl :: String
67+ , optFetchSubmodules :: Bool
6368 }
64− deriving (Show)
6569
6670options :: Parser Options
6771options = Options
@@ -69,9 +73,17 @@ options = Options
6973 <*> many (strOption $ long "maintainer" <> metavar "MAINTAINER" <> help "maintainer of this package (may be specified multiple times)")
7074-- <*> many (strOption $ long "platform" <> metavar "PLATFORM" <> help "supported build platforms (may be specified multiple times)")
7175 <*> flag True False (long "no-haddock" <> help "don't run Haddock when building this package")
72− <*> switch (long "hpack" <> help "run hpack before configuring this package (only non-hackage packages)")
76+ <*>
77+ (
78+ flag' ForceHpack (long "hpack" <> help "run hpack before configuring this package (only non-hackage packages)")
79+ <|>
80+ flag' NoHpack (long "no-hpack" <> help "disable hpack run and use only cabal disregarding package.yaml existence")
81+ <|>
82+ pure PackageYamlHpack
83+ )
7384 <*> flag True False (long "no-check" <> help "don't run regression test suites of this package")
7485 <*> switch (long "jailbreak" <> help "disregard version restrictions on build inputs")
86+ <*> switch (long "benchmark" <> help "enable benchmarks for this package")
7587 <*> optional (strOption $ long "revision" <> help "revision to use when fetching from VCS")
7688 <*> flag True False (long "no-hyperlink-source" <> help "don't generate pretty-printed source code for the documentation")
7789 <*> switch (long "enable-library-profiling" <> help "enable library profiling in the generated build")
@@ -81,11 +93,13 @@ options = Options
8193 <*> optional (strOption $ long "hackage-db" <> metavar "PATH" <> help "path to the local hackage db in tar format")
8294 <*> switch (long "shell" <> help "generate output suitable for nix-shell")
8395 <*> many (strOption $ short 'f' <> long "flag" <> help "Cabal flag (may be specified multiple times)")
84− <*> option (readP parse) (long "compiler" <> help "compiler to use when evaluating the Cabal file" <> value buildCompilerId <> showDefaultWith display)
85− <*> option (readP parsePlatform) (long "system" <> help "target system to use when evaluating the Cabal file" <> value buildPlatform <> showDefaultWith display)
96+ <*> option parseCabal (long "compiler" <> help "compiler to use when evaluating the Cabal file" <> value buildCompilerId <> showDefaultWith prettyShow)
97+ <*> option (maybeReader parsePlatform) (long "system" <> help "host system (in either short Nix format or full LLVM style) to use when evaluating the Cabal file" <> value buildPlatform <> showDefaultWith prettyShow)
8698 <*> optional (strOption $ long "subpath" <> metavar "PATH" <> help "Path to Cabal file's directory relative to the URI (default is root directory)")
8799 <*> optional (option utcTimeReader (long "hackage-snapshot" <> help "hackage snapshot time, ISO format"))
100+ <*> pure (\i -> Just (binding # (i, path # [ident # "pkgs", i])))
88101 <*> strArgument (metavar "URI")
102+ <*> flag True False (long "dont-fetch-submodules" <> help "do not fetch git submodules from git sources")
89103
90104-- | A parser for the date. Hackage updates happen maybe once or twice a month.
91105-- Example: parseTime defaultTimeLocale "%FT%T%QZ" "2017-11-20T12:18:35Z" :: Maybe UTCTime
@@ -95,21 +109,60 @@ utcTimeReader = eitherReader $ \arg ->
95109 Nothing -> Left $ "Cannot parse date, ISO format used ('2017-11-20T12:18:35Z'): " ++ arg
96110 Just utcTime -> Right utcTime
97111
98−readP :: P.ReadP a a -> ReadM a
99−readP p = eitherReader $ \s -> case [ r' | (r',"") <- P.readP_to_S p s ] of
100− (r:_) -> Right r
101− _ -> Left ("invalid value " ++ show s)
112+parseCabal :: Parsec a => ReadM a
113+parseCabal = eitherReader eitherParsec
114+
115+-- | Replicate the normalization performed by GHC_CONVERT_CPU in GHC's aclocal.m4
116+-- since the output of that is what Cabal parses.
117+ghcConvertArch :: String -> String
118+ghcConvertArch arch = case arch of
119+ "i486" -> "i386"
120+ "i586" -> "i386"
121+ "i686" -> "i386"
122+ "amd64" -> "x86_64"
123+ _ -> fromMaybe arch $ listToMaybe
124+ [prefix | prefix <- archPrefixes, prefix `isPrefixOf` arch]
125+ where archPrefixes =
126+ [ "aarch64", "alpha", "arm", "hppa1_1", "hppa", "m68k", "mipseb"
127+ , "mipsel", "mips", "powerpc64le", "powerpc64", "powerpc", "s390x"
128+ , "sparc64", "sparc"
129+ ]
130+
131+-- | Replicate the normalization performed by GHC_CONVERT_OS in GHC's aclocal.m4
132+-- since the output of that is what Cabal parses.
133+ghcConvertOS :: String -> String
134+ghcConvertOS os = case os of
135+ "watchos" -> "ios"
136+ "tvos" -> "ios"
137+ "linux-android" -> "linux-android"
138+ "linux-androideabi" -> "linux-androideabi"
139+ _ | "linux-" `isPrefixOf` os -> "linux"
140+ _ -> fromMaybe os $ listToMaybe
141+ [prefix | prefix <- osPrefixes, prefix `isPrefixOf` os]
142+ where osPrefixes =
143+ [ "gnu", "openbsd", "aix", "darwin", "solaris2", "freebsd", "nto-qnx"]
144+
145+parseArch :: String -> Arch
146+parseArch = classifyArch Permissive . ghcConvertArch
147+
148+parseOS :: String -> OS
149+parseOS = classifyOS Permissive . ghcConvertOS
102150
103−parsePlatform :: P.ReadP r Platform
104−parsePlatform = do arch <- P.choice [P.string "i686" >> return I386, P.string "x86_64" >> return X86_64]
105− _ <- P.char '-'
106− os <- P.choice [P.string "linux" >> return Linux, P.string "darwin" >> return OSX]
107− return (Platform arch os)
151+parsePlatform :: String -> Maybe Platform
152+parsePlatform = parsePlatformParts . splitOn "-"
153+
154+parsePlatformParts :: [String] -> Maybe Platform
155+parsePlatformParts = \case
156+ [arch, os] ->
157+ Just $ Platform (parseArch arch) (parseOS os)
158+ (arch : _ : osParts) ->
159+ Just $ Platform (parseArch arch) $ parseOS $ intercalate "-" osParts
160+ _ -> Nothing
108161
109162pinfo :: ParserInfo Options
110163pinfo = info
111164 ( helper
112− <*> infoOption ("cabal2nix " ++ display version) (long "version" <> help "Show version number")
165+ <*> infoOption ("cabal2nix " ++ prettyShow version) (long "version" <> help "Show version number")
113166 <*> options
114167 )
115168 ( fullDesc
@@ -138,23 +191,21 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() ->
138191 cabal2nix =<< getArgs
139192
140193hpackOverrides :: Derivation -> Derivation
141−hpackOverrides = over phaseOverrides (++ "preConfigure = \"hpack\";")
194+hpackOverrides = over phaseOverrides (++ "prePatch = \"hpack\";")
142195 . set (libraryDepends . tool . contains (PP.pkg "hpack")) True
143196
144−cabal2nix' :: [String] -> IO (Either Doc Derivation)
145−cabal2nix' args = do
146− opts@Options {..} <- handleParseResult $ execParserPure defaultPrefs pinfo args
147−
148− pkg <- getPackage optHpack optHackageDb optHackageSnapshot $ Source optUrl (fromMaybe "" optRevision) (maybe UnknownHash Guess optSha256) (fromMaybe "" optSubpath)
197+cabal2nix' :: Options -> IO (Either Doc Derivation)
198+cabal2nix' opts@Options{..} = do
199+ pkg <- getPackage optHpack optFetchSubmodules optHackageDb optHackageSnapshot $
200+ Source optUrl (fromMaybe "" optRevision) (maybe UnknownHash Guess optSha256) (fromMaybe "" optSubpath)
149201 processPackage opts pkg
150202
151−cabal2nixWithDB :: DB.HackageDB -> [String] -> IO (Either Doc Derivation)
152−cabal2nixWithDB db args = do
153− opts@Options {..} <- handleParseResult $ execParserPure defaultPrefs pinfo args
203+cabal2nixWithDB :: DB.HackageDB -> Options -> IO (Either Doc Derivation)
204+cabal2nixWithDB db opts@Options{..} = do
154205 when (isJust optHackageDb) $ hPutStrLn stderr "WARN: HackageDB provided directly; ignoring --hackage-db"
155206 when (isJust optHackageSnapshot) $ hPutStrLn stderr "WARN: HackageDB provided directly; ignoring --hackage-snapshot"
156−
157− pkg <- getPackage' optHpack (return db) $ Source optUrl (fromMaybe "" optRevision) (maybe UnknownHash Guess optSha256) (fromMaybe "" optSubpath)
207+ pkg <- getPackage' optHpack optFetchSubmodules (return db) $
208+ Source optUrl (fromMaybe "" optRevision) (maybe UnknownHash Guess optSha256) (fromMaybe "" optSubpath)
158209 processPackage opts pkg
159210
160211processPackage :: Options -> Package -> IO (Either Doc Derivation)
@@ -164,12 +215,11 @@ processPackage Options{..} pkg = do
164215 withHpackOverrides = if pkgRanHpack pkg then hpackOverrides else id
165216
166217 flags :: FlagAssignment
167− flags = normalizeCabalFlags $
168− configureCabalFlags (packageId (pkgCabal pkg)) ++ readFlagList optFlags
218+ flags = configureCabalFlags (packageId (pkgCabal pkg)) `mappend` readFlagList optFlags
169219
170220 deriv :: Derivation
171221 deriv = withHpackOverrides $ fromGenericPackageDescription (const True)
172− (\i -> Just (binding # (i, path # [i])))
222+ optNixpkgsIdentifier
173223 optSystem
174224 (unknownCompilerInfo optCompiler NoAbiTag)
175225 flags
@@ -177,7 +227,7 @@ processPackage Options{..} pkg = do
177227 (pkgCabal pkg)
178228 & src .~ pkgSource pkg
179229 & subpath .~ fromMaybe "." optSubpath
180− & runHaddock .~ optHaddock
230+ & runHaddock %~ (optHaddock &&)
181231 & jailbreak .~ optJailbreak
182232 & hyperlinkSource .~ optHyperlinkSource
183233 & enableLibraryProfiling .~ (fromMaybe False optEnableProfiling || optEnableLibraryProfiling)
@@ -185,6 +235,7 @@ processPackage Options{..} pkg = do
185235 & metaSection.maintainers .~ Set.fromList (map (review ident) optMaintainer)
186236-- & metaSection.platforms .~ Set.fromList optPlatform
187237 & doCheck &&~ optDoCheck
238+ & doBenchmark ||~ optDoBenchmark
188239 & extraFunctionArgs %~ Set.union (Set.fromList ("inherit stdenv":map (fromString . ("inherit " ++)) optExtraArgs))
189240
190241 shell :: Doc
@@ -212,13 +263,14 @@ processPackage Options{..} pkg = do
212263 pure $ if optNixShellOutput then Left shell else Right deriv
213264
214265cabal2nix :: [String] -> IO ()
215−cabal2nix args = do
216− v <- cabal2nix' args
217− print $ case v of
218− Left shell -> shell
219− Right d -> pPrint d
266+cabal2nix = parseArgs >=> cabal2nix' >=> putStrLn . either render prettyShow
267+
268+parseArgs :: [String] -> IO Options
269+parseArgs = handleParseResult . execParserPure defaultPrefs pinfo
270+
271+-- Utils
220272
221273readFlagList :: [String] -> FlagAssignment
222−readFlagList = map tagWithValue
274+readFlagList = mkFlagAssignment . map tagWithValue
223275 where tagWithValue ('-':fname) = (mkFlagName (lowercase fname), False)
224276 tagWithValue fname = (mkFlagName (lowercase fname), True)
src/Distribution/Nixpkgs/Fetch.hs+47−9
@@ -6,7 +6,7 @@
66module Distribution.Nixpkgs.Fetch
77 ( Source(..)
88 , Hash(..)
9− , DerivationSource(..), fromDerivationSource
9+ , DerivationSource(..), fromDerivationSource, urlDerivationSource
1010 , fetch
1111 , fetchWith
1212 ) where
@@ -18,7 +18,10 @@ import Control.Monad.IO.Class
1818import Control.Monad.Trans.Maybe
1919import Data.Aeson
2020import qualified Data.ByteString.Lazy.Char8 as BS
21+import qualified Data.List as L
22+import Data.Maybe
2123import GHC.Generics ( Generic )
24+import Language.Nix.PrettyPrinting as PP
2225import System.Directory
2326import System.Environment
2427import System.Exit
@@ -56,6 +59,7 @@ data DerivationSource = DerivationSource
5659 , derivUrl :: String -- ^ URL to fetch from.
5760 , derivRevision :: String -- ^ Revision to use. Leave empty if the fetcher doesn't support revisions.
5861 , derivHash :: String -- ^ The hash of the source.
62+ , derivSubmodule :: Maybe Bool -- ^ The fetchSubmodule setting (if any)
5963 }
6064 deriving (Show, Eq, Ord, Generic)
6165
@@ -66,22 +70,46 @@ instance FromJSON DerivationSource where
6670 <$> o .: "url"
6771 <*> o .: "rev"
6872 <*> o .: "sha256"
73+ <*> o .: "fetchSubmodules"
6974 parseJSON _ = error "invalid DerivationSource"
7075
76+instance PP.Pretty DerivationSource where
77+ pPrint DerivationSource {..} =
78+ let isHackagePackage = "mirror://hackage/" `L.isPrefixOf` derivUrl
79+ fetched = derivKind /= ""
80+ in if isHackagePackage then attr "sha256" $ string derivHash
81+ else if not fetched then attr "src" $ text derivUrl
82+ else vcat
83+ [ text "src" <+> equals <+> text ("fetch" ++ derivKind) <+> lbrace
84+ , nest 2 $ vcat
85+ [ attr "url" $ string derivUrl
86+ , attr "sha256" $ string derivHash
87+ , if derivRevision /= "" then attr "rev" (string derivRevision) else PP.empty
88+ , boolattr "fetchSubmodules" (isJust derivSubmodule) (fromJust derivSubmodule)
89+ ]
90+ , rbrace PP.<> semi
91+ ]
92+
93+
94+urlDerivationSource :: String -> String -> DerivationSource
95+urlDerivationSource url hash = DerivationSource "url" url "" hash Nothing
96+
7197fromDerivationSource :: DerivationSource -> Source
7298fromDerivationSource DerivationSource{..} = Source derivUrl derivRevision (Certain derivHash) "."
7399
74100-- | Fetch a source, trying any of the various nix-prefetch-* scripts.
75−fetch :: forall a. (String -> MaybeT IO a) -- ^ This function is passed the output path name as an argument.
101+fetch :: forall a.
102+ Bool -- ^ If True, fetch submodules when the source is a git repository
103+ -> (String -> MaybeT IO a) -- ^ This function is passed the output path name as an argument.
76104 -- It should return 'Nothing' if the file doesn't match the expected format.
77105 -- This is required, because we cannot always check if a download succeeded otherwise.
78106 -> Source -- ^ The source to fetch from.
79107 -> IO (Maybe (DerivationSource, a)) -- ^ The derivation source and the result of the processing function. Returns Nothing if the download failed.
80−fetch f = runMaybeT . fetchers where
108+fetch optSubModules f = runMaybeT . fetchers where
81109 fetchers :: Source -> MaybeT IO (DerivationSource, a)
82110 fetchers source = msum . (fetchLocal source :) $ map (\fetcher -> fetchWith fetcher source >>= process)
83111 [ (False, "url", [])
84− , (True, "git", ["--fetch-submodules"])
112+ , (True, "git", ["--fetch-submodules" | optSubModules ])
85113 , (True, "hg", [])
86114 , (True, "svn", [])
87115 , (True, "bzr", [])
@@ -100,17 +128,19 @@ fetch f = runMaybeT . fetchers where
100128 guard $ existsDir || existsFile
101129 let path' | '/' `elem` path = path
102130 | otherwise = "./" ++ path
103− process (DerivationSource "" path' "" "", path') <|> localArchive path'
131+ process (localDerivationSource path', path') <|> localArchive path'
104132
105133 localArchive :: FilePath -> MaybeT IO (DerivationSource, a)
106134 localArchive path = do
107135 absolutePath <- liftIO $ canonicalizePath path
108− unpacked <- snd <$> fetchWith (False, "zip", []) (Source ("file://" ++ absolutePath) "" UnknownHash ".")
109− process (DerivationSource "" absolutePath "" "", unpacked)
136+ unpacked <- snd <$> fetchWith (False, "url", ["--unpack"]) (Source ("file://" ++ absolutePath) "" UnknownHash ".")
137+ process (localDerivationSource absolutePath, unpacked)
110138
111139 process :: (DerivationSource, FilePath) -> MaybeT IO (DerivationSource, a)
112140 process (derivSource, file) = (,) derivSource <$> f file
113141
142+ localDerivationSource p = DerivationSource "" p "" "" Nothing
143+
114144-- | Like 'fetch', but allows to specify which script to use.
115145fetchWith :: (Bool, String, [String]) -> Source -> MaybeT IO (DerivationSource, FilePath)
116146fetchWith (supportsRev, kind, addArgs) source = do
@@ -131,11 +161,19 @@ fetchWith (supportsRev, kind, addArgs) source = do
131161 ExitFailure _ -> return Nothing
132162 ExitSuccess -> do
133163 buf <- BS.hGetContents stdoutH
134− let (l:ls) = reverse (BS.lines buf)
164+ let (l,ls) = case reverse (BS.lines buf) of
165+ [] -> error "This can't happen, but GHC doesn't know that."
166+ (x:xs) -> (x,xs)
135167 buf' = BS.unlines (reverse ls)
136168 case length ls of
137169 0 -> return Nothing
138− 1 -> return (Just (DerivationSource kind (sourceUrl source) "" (BS.unpack (head ls)) , sourceUrl source))
170+ 1 -> return (Just (DerivationSource { derivKind = kind
171+ , derivUrl = sourceUrl source
172+ , derivRevision = ""
173+ , derivHash = BS.unpack (head ls)
174+ , derivSubmodule = Nothing
175+ }
176+ , sourceUrl source))
139177 _ -> case eitherDecode buf' of
140178 Left err -> error ("invalid JSON: " ++ err ++ " in " ++ show buf')
141179 Right ds -> return (Just (ds { derivKind = kind }, BS.unpack l))
src/Distribution/Nixpkgs/Haskell/BuildInfo.hs+3−3
@@ -11,7 +11,7 @@ module Distribution.Nixpkgs.Haskell.BuildInfo
1111
1212import Control.DeepSeq
1313import Control.Lens
14−import Data.Semigroup
14+import Data.Semigroup as Sem
1515import Data.Set ( Set )
1616import Data.Set.Lens
1717import GHC.Generics ( Generic )
@@ -31,13 +31,13 @@ makeLenses ''BuildInfo
3131instance Each BuildInfo BuildInfo (Set Binding) (Set Binding) where
3232 each f (BuildInfo a b c d) = BuildInfo <$> f a <*> f b <*> f c <*> f d
3333
34−instance Semigroup BuildInfo where
34+instance Sem.Semigroup BuildInfo where
3535 BuildInfo w1 x1 y1 z1 <> BuildInfo w2 x2 y2 z2 =
3636 BuildInfo (w1 <> w2) (x1 <> x2) (y1 <> y2) (z1 <> z2)
3737
3838instance Monoid BuildInfo where
3939 mempty = BuildInfo mempty mempty mempty mempty
40− mappend = (<>)
40+ mappend = (Sem.<>)
4141
4242instance NFData BuildInfo
4343
src/Distribution/Nixpkgs/Haskell/Constraint.hs+1−1
@@ -9,7 +9,7 @@ import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
99type Constraint = Dependency
1010
1111satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool
12−satisfiesConstraint (PackageIdentifier pn v) (Dependency cn vr) = (pn /= cn) || (v `withinRange` vr)
12+satisfiesConstraint (PackageIdentifier pn v) (Dependency cn vr _) = (pn /= cn) || (v `withinRange` vr)
1313
1414satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool
1515satisfiesConstraints p = all (satisfiesConstraint p)
src/Distribution/Nixpkgs/Haskell/Derivation.hs+15−19
@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12{-# LANGUAGE DeriveGeneric #-}
23{-# LANGUAGE RecordWildCards #-}
34{-# LANGUAGE TemplateHaskell #-}
@@ -6,7 +7,7 @@
67module Distribution.Nixpkgs.Haskell.Derivation
78 ( Derivation, nullDerivation, pkgid, revision, src, subpath, isLibrary, isExecutable
89 , extraFunctionArgs, libraryDepends, executableDepends, testDepends, configureFlags
9− , cabalFlags, runHaddock, jailbreak, doCheck, testTarget, hyperlinkSource, enableSplitObjs
10+ , cabalFlags, runHaddock, jailbreak, doCheck, doBenchmark, testTarget, hyperlinkSource, enableSplitObjs
1011 , enableLibraryProfiling, enableExecutableProfiling, phaseOverrides, editedCabalFile, metaSection
1112 , dependencies, setupDepends, benchmarkDepends, enableSeparateDataOutput
1213 )
@@ -14,7 +15,7 @@ module Distribution.Nixpkgs.Haskell.Derivation
1415
1516import Control.DeepSeq
1617import Control.Lens
17−import Data.List
18+import Data.List ( isPrefixOf )
1819import Data.Set ( Set )
1920import qualified Data.Set as Set
2021import Data.Set.Lens
@@ -23,11 +24,15 @@ import Distribution.Nixpkgs.Haskell.BuildInfo
2324import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
2425import Distribution.Nixpkgs.Meta
2526import Distribution.Package
26−import Distribution.PackageDescription ( FlagAssignment, unFlagName )
27+import Distribution.PackageDescription ( FlagAssignment, unFlagName, unFlagAssignment )
2728import GHC.Generics ( Generic )
2829import Language.Nix
2930import Language.Nix.PrettyPrinting
3031
32+#if MIN_VERSION_base(4,11,0)
33+import Prelude hiding ((<>))
34+#endif
35+
3136-- | A represtation of Nix expressions for building Haskell packages.
3237-- The data type correspond closely to the definition of
3338-- 'PackageDescription' from Cabal.
@@ -50,6 +55,7 @@ data Derivation = MkDerivation
5055 , _runHaddock :: Bool
5156 , _jailbreak :: Bool
5257 , _doCheck :: Bool
58+ , _doBenchmark :: Bool
5359 , _testTarget :: String
5460 , _hyperlinkSource :: Bool
5561 , _enableLibraryProfiling :: Bool
@@ -81,6 +87,7 @@ nullDerivation = MkDerivation
8187 , _runHaddock = error "undefined Derivation.runHaddock"
8288 , _jailbreak = error "undefined Derivation.jailbreak"
8389 , _doCheck = error "undefined Derivation.doCheck"
90+ , _doBenchmark = error "undefined Derivation.doBenchmark"
8491 , _testTarget = error "undefined Derivation.testTarget"
8592 , _hyperlinkSource = error "undefined Derivation.hyperlinkSource"
8693 , _enableLibraryProfiling = error "undefined Derivation.enableLibraryProfiling"
@@ -105,9 +112,9 @@ instance Pretty Derivation where
105112 pPrint drv@MkDerivation {..} = funargs (map text ("mkDerivation" : toAscList inputs)) $$ vcat
106113 [ text "mkDerivation" <+> lbrace
107114 , nest 2 $ vcat
108− [ attr "pname" $ doubleQuotes $ disp (packageName _pkgid)
109− , attr "version" $ doubleQuotes $ disp (packageVersion _pkgid)
110− , sourceAttr _src
115+ [ attr "pname" $ doubleQuotes $ pPrint (packageName _pkgid)
116+ , attr "version" $ doubleQuotes $ pPrint (packageVersion _pkgid)
117+ , pPrint _src
111118 , onlyIf (_subpath /= ".") $ attr "postUnpack" postUnpack
112119 , onlyIf (_revision > 0) $ attr "revision" $ doubleQuotes $ int _revision
113120 , onlyIf (not (null _editedCabalFile) && _revision > 0) $ attr "editedCabalFile" $ string _editedCabalFile
@@ -126,6 +133,7 @@ instance Pretty Derivation where
126133 , boolattr "doHaddock" (not _runHaddock) _runHaddock
127134 , boolattr "jailbreak" _jailbreak _jailbreak
128135 , boolattr "doCheck" (not _doCheck) _doCheck
136+ , boolattr "doBenchmark" _doBenchmark _doBenchmark
129137 , onlyIf (not (null _testTarget)) $ attr "testTarget" $ string _testTarget
130138 , boolattr "hyperlinkSource" (not _hyperlinkSource) _hyperlinkSource
131139 , onlyIf (not (null _phaseOverrides)) $ vcat ((map text . lines) _phaseOverrides)
@@ -140,20 +148,8 @@ instance Pretty Derivation where
140148 , Set.fromList ["fetch" ++ derivKind _src | derivKind _src /= "" && not isHackagePackage]
141149 ]
142150
143− renderedFlags = [ text "-f" <> (if enable then empty else char '-') <> text (unFlagName f) | (f, enable) <- _cabalFlags ]
151+ renderedFlags = [ text "-f" <> (if enable then empty else char '-') <> text (unFlagName f) | (f, enable) <- unFlagAssignment _cabalFlags ]
144152 ++ map text (toAscList _configureFlags)
145153 isHackagePackage = "mirror://hackage/" `isPrefixOf` derivUrl _src
146− sourceAttr DerivationSource {..}
147− | isHackagePackage = attr "sha256" $ string derivHash
148− | derivKind /= "" = vcat
149− [ text "src" <+> equals <+> text ("fetch" ++ derivKind) <+> lbrace
150− , nest 2 $ vcat
151− [ attr "url" $ string derivUrl
152− , attr "sha256" $ string derivHash
153− , if derivRevision /= "" then attr "rev" (string derivRevision) else empty
154− ]
155− , rbrace <> semi
156− ]
157− | otherwise = attr "src" $ text derivUrl
158154
159155 postUnpack = string $ "sourceRoot+=/" ++ _subpath ++ "; echo source root reset to $sourceRoot"
src/Distribution/Nixpkgs/Haskell/FromCabal.hs+30−14
@@ -52,20 +52,20 @@ finalizeGenericPackageDescription haskellResolver arch compiler flags constraint
5252 finalize resolver = finalizePD flags requestedComponents resolver arch compiler constraints genDesc
5353
5454 requestedComponents :: ComponentRequestedSpec
55− requestedComponents = defaultComponentRequestedSpec
55+ requestedComponents = ComponentRequestedSpec
5656 { testsRequested = True
5757 , benchmarksRequested = True
5858 }
5959
6060 jailbroken :: HaskellResolver -> HaskellResolver
61− jailbroken resolver (Dependency pkg _) = resolver (Dependency pkg anyVersion)
61+ jailbroken resolver (Dependency pkg _ _) = resolver (Dependency pkg anyVersion mempty)
6262
6363 withInternalLibs :: HaskellResolver -> HaskellResolver
6464 withInternalLibs resolver d = depPkgName d `elem` internalNames || resolver d
6565
6666 internalNames :: [PackageName]
6767 internalNames = [ unqualComponentNameToPackageName n | (n,_) <- condSubLibraries genDesc ]
68− ++ [ unqualComponentNameToPackageName n | Just n <- libName <$> subLibraries (packageDescription genDesc) ]
68+ ++ [ unqualComponentNameToPackageName n | LSubLibName n <- libName <$> subLibraries (packageDescription genDesc) ]
6969
7070 in case finalize (jailbroken (withInternalLibs haskellResolver)) of
7171 Left m -> case finalize (const True) of
@@ -88,9 +88,10 @@ fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags Package
8888 & Nix.setupDepends .~ maybe mempty convertSetupBuildInfo setupBuildInfo
8989 & configureFlags .~ mempty
9090 & cabalFlags .~ flags
91− & runHaddock .~ maybe True (not . null . exposedModules) library
91+ & runHaddock .~ doHaddockPhase
9292 & jailbreak .~ False
9393 & doCheck .~ True
94+ & doBenchmark .~ False
9495 & testTarget .~ mempty
9596 & hyperlinkSource .~ True
9697 & enableSplitObjs .~ True
@@ -107,7 +108,7 @@ fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags Package
107108 & Nix.description .~ synopsis
108109 & Nix.license .~ nixLicense
109110 & Nix.platforms .~ Nix.allKnownPlatforms
110− & Nix.hydraPlatforms .~ (if nixLicense == Nix.Known "stdenv.lib.licenses.unfree" then Set.empty else Nix.allKnownPlatforms)
111+ & Nix.hydraPlatforms .~ (if isFreeLicense nixLicense then Nix.allKnownPlatforms else Set.empty)
111112 & Nix.maintainers .~ mempty
112113 & Nix.broken .~ not (null missingDeps)
113114 )
@@ -115,34 +116,49 @@ fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags Package
115116 xrev = maybe 0 read (lookup "x-revision" customFieldsPD)
116117
117118 nixLicense :: Nix.License
118− nixLicense = fromCabalLicense license
119+ nixLicense = either fromSPDXLicense fromCabalLicense licenseRaw
119120
120121 resolveInHackage :: Identifier -> Binding
121− resolveInHackage i | (i^.ident) `elem` [ unPackageName n | (Dependency n _) <- missingDeps ] = bindNull i
122+ resolveInHackage i | (i^.ident) `elem` [ unPackageName n | (Dependency n _ _) <- missingDeps ] = bindNull i
122123 | otherwise = binding # (i, path # ["self",i]) -- TODO: "self" shouldn't be hardcoded.
123124
125+ -- TODO: This is all very confusing. Haskell packages refer to the Nixpkgs
126+ -- derivation 'foo' as 'pkgs.foo', because they live in the 'haskellPackages'
127+ -- name space -- not on the top level. Therefore, we built our Nixpkgs lookup
128+ -- function so that top level names are returned as 'pkgs.foo'. As a result, we
129+ -- end up pre-pending that path to all kinds of names all over the place. I
130+ -- suppose the correct approach would be to assume that the lookup function
131+ -- returns names that live in the top-level and to adapt the code in
132+ -- PostProcess.hs et all to that fact.
124133 goodScopes :: Set [Identifier]
125134 goodScopes = Set.fromList (map ("pkgs":) [[], ["xorg"], ["xlibs"], ["gnome2"], ["gnome"], ["gnome3"], ["kde4"]])
126135
127136 resolveInNixpkgs :: Identifier -> Binding
128137 resolveInNixpkgs i
129138 | i `elem` ["clang","lldb","llvm"] = binding # (i, path # ["self","llvmPackages",i]) -- TODO: evil!
130− | i == "gtk2" = binding # (i, path # ["pkgs","gnome2","gtk"])
131− | i == "gtk3" = binding # (i, path # ["pkgs","gnome3","gtk"])
132− | i == "gtksourceview3" = binding # (i, path # ["pkgs","gnome3","gtksourceview"])
139+ | i == "gtk2" = binding # (i, path # ["pkgs","gtk2"]) -- TODO: these cases should not be necessary
140+ | i == "gtk3" = binding # (i, path # ["pkgs","gtk3"])
141+ | i == "gtksourceview3" = binding # (i, path # ["pkgs","gtksourceview3"])
142+ | i == "vte_291" = binding # (i, path # ["pkgs","vte"])
133143 | Just p <- nixpkgsResolver i, init (view (reference . path) p) `Set.member` goodScopes = p
134144 | otherwise = bindNull i
135145
136146 resolveInHackageThenNixpkgs :: Identifier -> Binding
137− resolveInHackageThenNixpkgs i | haskellResolver (Dependency (mkPackageName (i^.ident)) anyVersion) = resolveInHackage i
147+ resolveInHackageThenNixpkgs i | haskellResolver (Dependency (mkPackageName (i^.ident)) anyVersion mempty) = resolveInHackage i
138148 | otherwise = resolveInNixpkgs i
139149
140150 internalLibNames :: [PackageName]
141− internalLibNames = fmap unqualComponentNameToPackageName . catMaybes $ libName <$> subLibraries
151+ internalLibNames = [ unqualComponentNameToPackageName n | LSubLibName n <- libName <$> subLibraries ]
152+
153+ doHaddockPhase :: Bool
154+ doHaddockPhase | not (null internalLibNames) = False
155+ | Just l <- library = not (null (exposedModules l))
156+ | otherwise = True
142157
143158 convertBuildInfo :: Cabal.BuildInfo -> Nix.BuildInfo
159+ convertBuildInfo Cabal.BuildInfo {..} | not buildable = mempty
144160 convertBuildInfo Cabal.BuildInfo {..} = mempty
145− & haskell .~ Set.fromList [ resolveInHackage (toNixName x) | (Dependency x _) <- targetBuildDepends, x `notElem` internalLibNames ]
161+ & haskell .~ Set.fromList [ resolveInHackage (toNixName x) | (Dependency x _ _) <- targetBuildDepends, x `notElem` internalLibNames ]
146162 & system .~ Set.fromList [ resolveInNixpkgs y | x <- extraLibs, y <- libNixName x ]
147163 & pkgconfig .~ Set.fromList [ resolveInNixpkgs y | PkgconfigDependency x _ <- pkgconfigDepends, y <- libNixName (unPkgconfigName x) ]
148164 & tool .~ Set.fromList (map resolveInHackageThenNixpkgs . concatMap buildToolNixName
@@ -150,7 +166,7 @@ fromPackageDescription haskellResolver nixpkgsResolver missingDeps flags Package
150166
151167 convertSetupBuildInfo :: Cabal.SetupBuildInfo -> Nix.BuildInfo
152168 convertSetupBuildInfo bi = mempty
153− & haskell .~ Set.fromList [ resolveInHackage (toNixName x) | (Dependency x _) <- Cabal.setupDepends bi ]
169+ & haskell .~ Set.fromList [ resolveInHackage (toNixName x) | (Dependency x _ _) <- Cabal.setupDepends bi ]
154170
155171bindNull :: Identifier -> Binding
156172bindNull i = binding # (i, path # ["null"])
src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs+28−31
@@ -1,15 +1,21 @@
11{-# LANGUAGE RecordWildCards #-}
2−{-# LANGUAGE CPP #-}
32{-# LANGUAGE FlexibleInstances #-}
43{-# LANGUAGE OverloadedStrings #-}
54{-# LANGUAGE DeriveGeneric #-}
65{-# OPTIONS_GHC -fno-warn-orphans #-}
76
8−module Distribution.Nixpkgs.Haskell.FromCabal.Configuration ( Configuration(..), readConfiguration, assertConsistency ) where
7+module Distribution.Nixpkgs.Haskell.FromCabal.Configuration
8+ ( Configuration(..), readConfiguration, assertConsistency
9+ )
10+ where
11+
12+import Prelude hiding ( fail )
913
1014import Control.DeepSeq
15+import Control.Exception ( throwIO )
1116import Control.Lens
12−import Control.Monad
17+import Control.Monad hiding ( fail )
18+import Control.Monad.Fail
1319import Data.Aeson
1420import Data.Map as Map
1521import Data.Set as Set
@@ -39,14 +45,22 @@ data Configuration = Configuration
3945 -- role during dependency resolution.
4046 , extraPackages :: [Constraint]
4147
42− -- |We know that these packages won't build, so we give them an empty
43− -- meta.hydraPlatforms attribute to avoid cluttering our Hydra output with
44− -- lots of failure messages.
45− , dontDistributePackages :: Map PackageName (Set Platform)
46−
4748 -- |This information is used by the @hackage2nix@ utility to determine the
4849 -- 'maintainers' for a given Haskell package.
4950 , packageMaintainers :: Map Identifier (Set PackageName)
51+
52+ -- |These packages (by design) don't support certain platforms.
53+ , unsupportedPlatforms :: Map PackageName (Set Platform)
54+
55+ -- |These packages cannot be distributed by Hydra, i.e. because they have an
56+ -- unfree license or depend on other tools that cannot be distributed for
57+ -- some reason.
58+ , dontDistributePackages :: Set PackageName
59+
60+ -- |We know that these packages won't compile, so we mark them as broken and
61+ -- also disable their meta.hydraPlatforms attribute to avoid cluttering our
62+ -- Hydra job with lots of failure messages.
63+ , brokenPackages :: [Constraint]
5064 }
5165 deriving (Show, Generic)
5266
@@ -58,50 +72,33 @@ instance FromJSON Configuration where
5872 <*> o .:? "core-packages" .!= mempty
5973 <*> o .:? "default-package-overrides" .!= mempty
6074 <*> o .:? "extra-packages" .!= mempty
61− <*> o .:? "dont-distribute-packages" .!= mempty
6275 <*> o .:? "package-maintainers" .!= mempty
76+ <*> o .:? "unsupported-platforms" .!= mempty
77+ <*> o .:? "dont-distribute-packages" .!= mempty
78+ <*> o .:? "broken-packages" .!= mempty
6379 parseJSON _ = error "invalid Configuration"
6480
6581instance FromJSON Identifier where
6682 parseJSON (String s) = pure (review ident (T.unpack s))
6783 parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Nix identifier")
6884
69−#if MIN_VERSION_aeson(1,0,0)
70−
7185instance FromJSONKey Identifier where
7286 fromJSONKey = FromJSONKeyText parseKey
7387
7488instance FromJSONKey PackageName where
7589 fromJSONKey = FromJSONKeyText parseKey
7690
77−#elif MIN_VERSION_aeson(0,11,0)
78−
79−instance (FromJSON v) => FromJSON (Map Identifier v) where
80− parseJSON = fmap (Map.mapKeys parseKey) . parseJSON
81−
82−instance (FromJSON v) => FromJSON (Map PackageName v) where
83− parseJSON = fmap (Map.mapKeys parseKey) . parseJSON
84−
85−#else
86−
87−instance (Ord k, FromJSON k, FromJSON v) => FromJSON (Map k v) where
88− parseJSON = fmap (Map.mapKeys parseKey) . parseJSON
89−
90−#endif
91−
9291parseKey :: FromJSON k => Text -> k
9392parseKey s = either error id (parseEither parseJSON (String s))
9493
9594readConfiguration :: FilePath -> IO Configuration
96−readConfiguration path =
97− decodeFile path >>= maybe (fail ("invalid config file at " ++ show path)) assertConsistency
95+readConfiguration path = decodeFileEither path >>= either throwIO assertConsistency
9896
99−assertConsistency :: Monad m => Configuration -> m Configuration
97+assertConsistency :: MonadFail m => Configuration -> m Configuration
10098assertConsistency cfg@Configuration {..} = do
10199 let report msg = fail ("*** configuration error: " ++ msg)
102−
103100 maintainedPackages = Set.unions (Map.elems packageMaintainers)
104− disabledPackages = Map.keysSet dontDistributePackages
101+ disabledPackages = dontDistributePackages `Set.union` Set.fromList (depPkgName <$> brokenPackages)
105102 disabledMaintainedPackages = maintainedPackages `Set.intersection` disabledPackages
106103 unless (Set.null disabledMaintainedPackages) $
107104 report ("disabled packages that have a maintainer: " ++ show disabledMaintainedPackages)
src/Distribution/Nixpkgs/Haskell/FromCabal/Flags.hs+22−17
@@ -4,38 +4,37 @@ module Distribution.Nixpkgs.Haskell.FromCabal.Flags ( configureCabalFlags ) wher
44
55import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
66
7+import Data.Char
78import Distribution.Package
89import Distribution.PackageDescription
910import Distribution.Version
1011
1112configureCabalFlags :: PackageIdentifier -> FlagAssignment
12−configureCabalFlags (PackageIdentifier name version)
13+configureCabalFlags = mkFlagAssignment . configureCabalFlags'
14+
15+configureCabalFlags' :: PackageIdentifier -> [(FlagName,Bool)]
16+configureCabalFlags' (PackageIdentifier name version)
1317 | name == "accelerate-examples"= [disable "opencl"]
1418 | name == "arithmoi" = [disable "llvm"]
19+ | name == "bustle" = [disable "hgettext"] -- https://gitlab.freedesktop.org/bustle/bustle/issues/13
1520 | name == "cabal-plan" = [enable "exe"]
1621 | name == "cassava" = [disable "bytestring--lt-0_10_4"]
1722 | name == "darcs" = [enable "library", enable "force-char8-encoding"]
1823 | name == "diagrams-builder" = [enable "cairo", enable "svg", enable "ps", enable "rasterific"]
24+ | name == "fltkhs" = [enable "opengl"]
1925 | name == "folds" = [disable "test-hlint"]
2026 | name == "git-annex" = [ enable "assistant"
21− , enable "cryptonite"
27+ , disable "benchmark"
2228 , enable "dbus"
23− , enable "desktopnotify"
24− , enable "dns"
25− , enable "feed"
26− , enable "inotify"
29+ , disable "debuglocks"
30+ , enable "magicmime"
31+ , enable "networkbsd"
2732 , enable "pairing"
2833 , enable "production"
29− , enable "quvi"
3034 , enable "s3"
31− , enable "tahoe"
32− , enable "tdfa"
33− , ("testsuite", version `withinRange` "< 6.20170925 || >= 6.20171214")
3435 , enable "torrentparser"
3536 , enable "webapp"
36− , enable "webapp-secure"
3737 , enable "webdav"
38− , enable "xmpp"
3938 ]
4039 | name == "haskeline" = [enable "terminfo"]
4140 | name == "haste-compiler" = [enable "portable"]
@@ -43,21 +42,27 @@ configureCabalFlags (PackageIdentifier name version)
4342 | name == "hlibsass" && version >= mkVersion [0,1,5]
4443 = [enable "externalLibsass"]
4544 | name == "hmatrix" = [enable "openblas", enable "disable-default-paths"]
46− | name == "hslua" = [enable "system-lua"]
45+ | name == "hslua" = [enable "system-lua", disable "use-pkgconfig"]
4746 | name == "idris" = [enable "gmp", enable "ffi", enable "curses", ("execonly", version `withinRange` orLaterVersion (mkVersion [1,1,1])) ]
4847 | name == "io-streams" = [enable "NoInteractiveTests"]
4948 | name == "liquid-fixpoint" = [enable "build-external"]
5049 | name == "pandoc" = [enable "https", disable "trypandoc"]
50+ | name == "pandoc-placetable" = [enable "inlineMarkdown"]
51+ | name == "persistent-sqlite" = [enable "systemlib"]
5152 | name == "reactive-banana-wx" = [disable "buildExamples"]
5253 | name == "snap-server" = [enable "openssl"]
53− | name == "xmobar" = [enable "all_extensions"]
54+ | name == "stack" = [enable "disable-git-info", enable "hide-dependency-versions", enable "supported-build"]
55+ | name == "xmobar" = [enable "with_alsa", enable "with_conduit", enable "with_datezone", enable "with_dbus", enable "with_inotify", enable "with_iwlib", enable "with_mpd", enable "with_mpris", enable "with_rtsopts", enable "with_threaded", enable "with_utf8", enable "with_uvmeter", enable "with_weather", enable "with_xft", enable "with_xpm"]
5456 | name == "xmonad-extras" = [disable "with_hlist", enable "with_split", enable "with_parsec"]
55− | name == "yaml" = [enable "system-libyaml"]
57+ | name == "yaml" = [("system-libyaml", version >= "0.10.1.1")]
5658 | name == "yi" = [enable "pango", enable "vty"]
5759 | otherwise = []
5860
5961enable :: String -> (FlagName,Bool)
60−enable name = (mkFlagName name, True)
62+enable name = (mkFlagName' name, True)
6163
6264disable :: String -> (FlagName,Bool)
63−disable name = (mkFlagName name, False)
65+disable name = (mkFlagName' name, False)
66+
67+mkFlagName' :: String -> FlagName
68+mkFlagName' = mkFlagName . map toLower
src/Distribution/Nixpkgs/Haskell/FromCabal/License.hs+135−4
@@ -1,14 +1,20 @@
11{-# LANGUAGE ViewPatterns #-}
22
3−module Distribution.Nixpkgs.Haskell.FromCabal.License ( fromCabalLicense ) where
3+module Distribution.Nixpkgs.Haskell.FromCabal.License
4+ ( fromCabalLicense
5+ , fromSPDXLicense
6+ , isFreeLicense
7+ ) where
48
5−import Distribution.Nixpkgs.License
9+import Data.List (intercalate)
610import Distribution.License ( License(..), knownLicenses )
11+import Distribution.Nixpkgs.License
12+import Distribution.Pretty (prettyShow)
13+import qualified Distribution.SPDX as SPDX
714import Distribution.Text (display)
8−import Data.List (intercalate)
915import Distribution.Version
1016
11−-- TODO: Programatically strip trailing zeros from license version numbers.
17+-- TODO: Programmatically strip trailing zeros from license version numbers.
1218
1319fromCabalLicense :: Distribution.License.License -> Distribution.Nixpkgs.License.License
1420fromCabalLicense (GPL Nothing) = Unknown (Just "GPL")
@@ -35,5 +41,130 @@ fromCabalLicense (Apache Nothing) = Known "stdenv.lib.l
3541fromCabalLicense (Apache (Just (versionNumbers -> [2,0]))) = Known "stdenv.lib.licenses.asl20"
3642fromCabalLicense ISC = Known "stdenv.lib.licenses.isc"
3743fromCabalLicense OtherLicense = Unknown Nothing
44+fromCabalLicense (UnknownLicense "CC0-1.0") = Known "stdenv.lib.licenses.cc0"
45+fromCabalLicense (UnknownLicense "BSD3ClauseORApache20") = Known "stdenv.lib.licenses.bsd3"
3846fromCabalLicense l = error $ "Distribution.Nixpkgs.Haskell.FromCabal.License.fromCabalLicense: unknown license"
3947 ++ show l ++"\nChoose one of: " ++ intercalate ", " (map display knownLicenses)
48+
49+fromSPDXLicense :: SPDX.License -> Distribution.Nixpkgs.License.License
50+fromSPDXLicense SPDX.NONE = Unknown Nothing
51+fromSPDXLicense (SPDX.License expr) =
52+ case expr of
53+ SPDX.ELicense simpl Nothing ->
54+ -- Not handled: license exceptions
55+ case simpl of
56+ SPDX.ELicenseId lid ->
57+ case lid of
58+ SPDX.AFL_2_1 -> Known "stdenv.lib.licenses.afl21"
59+ SPDX.AFL_3_0 -> Known "stdenv.lib.licenses.afl3"
60+ SPDX.AGPL_3_0_only -> Known "stdenv.lib.licenses.agpl3"
61+ SPDX.AGPL_3_0_or_later -> Known "stdenv.lib.licenses.agpl3Plus"
62+ SPDX.APSL_2_0 -> Known "stdenv.lib.licenses.apsl20"
63+ SPDX.Artistic_1_0 -> Known "stdenv.lib.licenses.artistic1"
64+ SPDX.Artistic_2_0 -> Known "stdenv.lib.licenses.artistic2"
65+ SPDX.Apache_2_0 -> Known "stdenv.lib.licenses.asl20"
66+ SPDX.BSL_1_0 -> Known "stdenv.lib.licenses.boost"
67+ SPDX.Beerware -> Known "stdenv.lib.licenses.beerware"
68+ SPDX.NullBSD -> Known "stdenv.lib.licenses.bsd0"
69+ SPDX.BSD_2_Clause -> Known "stdenv.lib.licenses.bsd2"
70+ SPDX.BSD_3_Clause -> Known "stdenv.lib.licenses.bsd3"
71+ SPDX.BSD_4_Clause -> Known "stdenv.lib.licenses.bsdOriginal"
72+ SPDX.ClArtistic -> Known "stdenv.lib.licenses.clArtistic"
73+ SPDX.CC0_1_0 -> Known "stdenv.lib.licenses.cc0"
74+ SPDX.CC_BY_NC_SA_2_0 -> Known "stdenv.lib.licenses.cc-by-nc-sa-20"
75+ SPDX.CC_BY_NC_SA_2_5 -> Known "stdenv.lib.licenses.cc-by-nc-sa-25"
76+ SPDX.CC_BY_NC_SA_3_0 -> Known "stdenv.lib.licenses.cc-by-nc-sa-30"
77+ SPDX.CC_BY_NC_SA_4_0 -> Known "stdenv.lib.licenses.cc-by-nc-sa-40"
78+ SPDX.CC_BY_NC_4_0 -> Known "stdenv.lib.licenses.cc-by-nc-40"
79+ SPDX.CC_BY_ND_3_0 -> Known "stdenv.lib.licenses.cc-by-nd-30"
80+ SPDX.CC_BY_SA_2_5 -> Known "stdenv.lib.licenses.cc-by-sa-25"
81+ SPDX.CC_BY_3_0 -> Known "stdenv.lib.licenses.cc-by-30"
82+ SPDX.CC_BY_SA_3_0 -> Known "stdenv.lib.licenses.cc-by-sa-30"
83+ SPDX.CC_BY_4_0 -> Known "stdenv.lib.licenses.cc-by-40"
84+ SPDX.CC_BY_SA_4_0 -> Known "stdenv.lib.licenses.cc-by-sa-40"
85+ SPDX.CDDL_1_0 -> Known "stdenv.lib.licenses.cddl"
86+ SPDX.CECILL_2_0 -> Known "stdenv.lib.licenses.cecill20"
87+ SPDX.CECILL_B -> Known "stdenv.lib.licenses.cecill-b"
88+ SPDX.CECILL_C -> Known "stdenv.lib.licenses.cecill-c"
89+ SPDX.CPAL_1_0 -> Known "stdenv.lib.licenses.cpal10"
90+ SPDX.CPL_1_0 -> Known "stdenv.lib.licenses.cpl10"
91+ SPDX.Curl -> Known "stdenv.lib.licenses.curl"
92+ SPDX.DOC -> Known "stdenv.lib.licenses.doc"
93+ SPDX.EFL_1_0 -> Known "stdenv.lib.licenses.efl10"
94+ SPDX.EFL_2_0 -> Known "stdenv.lib.licenses.efl20"
95+ SPDX.EPL_1_0 -> Known "stdenv.lib.licenses.epl10"
96+ SPDX.EPL_2_0 -> Known "stdenv.lib.licenses.epl20"
97+ SPDX.EUPL_1_1 -> Known "stdenv.lib.licenses.eupl11"
98+ SPDX.GFDL_1_2_only -> Known "stdenv.lib.licenses.fdl12"
99+ SPDX.GFDL_1_3_only -> Known "stdenv.lib.licenses.fdl13"
100+ SPDX.GPL_1_0_only -> Known "stdenv.lib.licenses.gpl1"
101+ SPDX.GPL_1_0_or_later -> Known "stdenv.lib.licenses.gpl1Plus"
102+ SPDX.GPL_2_0_only -> Known "stdenv.lib.licenses.gpl2"
103+ SPDX.GPL_2_0_or_later -> Known "stdenv.lib.licenses.gpl2Plus"
104+ SPDX.GPL_3_0_only -> Known "stdenv.lib.licenses.gpl3"
105+ SPDX.GPL_3_0_or_later -> Known "stdenv.lib.licenses.gpl3Plus"
106+ SPDX.HPND -> Known "stdenv.lib.licenses.hpnd"
107+ SPDX.IJG -> Known "stdenv.lib.licenses.ijg"
108+ SPDX.ImageMagick -> Known "stdenv.lib.licenses.imagemagick"
109+ SPDX.IPA -> Known "stdenv.lib.licenses.ipa"
110+ SPDX.IPL_1_0 -> Known "stdenv.lib.licenses.ipl10"
111+ SPDX.ISC -> Known "stdenv.lib.licenses.isc"
112+ SPDX.JasPer_2_0 -> Known "stdenv.lib.licenses.jasper"
113+ SPDX.LGPL_2_0_only -> Known "stdenv.lib.licenses.lgpl2"
114+ SPDX.LGPL_2_0_or_later -> Known "stdenv.lib.licenses.lgpl2Plus"
115+ SPDX.LGPL_2_1_only -> Known "stdenv.lib.licenses.lgpl21"
116+ SPDX.LGPL_2_1_or_later -> Known "stdenv.lib.licenses.lgpl21Plus"
117+ SPDX.LGPL_3_0_only -> Known "stdenv.lib.licenses.lgpl3"
118+ SPDX.LGPL_3_0_or_later -> Known "stdenv.lib.licenses.lgpl3Plus"
119+ SPDX.Libpng -> Known "stdenv.lib.licenses.libpng"
120+ SPDX.Libtiff -> Known "stdenv.lib.licenses.libtiff"
121+ SPDX.LPPL_1_2 -> Known "stdenv.lib.licenses.lppl12"
122+ SPDX.LPPL_1_3c -> Known "stdenv.lib.licenses.lppl13c"
123+ SPDX.LPL_1_02 -> Known "stdenv.lib.licenses.lpl-102"
124+ SPDX.MIT -> Known "stdenv.lib.licenses.mit"
125+ SPDX.MPL_1_0 -> Known "stdenv.lib.licenses.mpl10"
126+ SPDX.MPL_1_1 -> Known "stdenv.lib.licenses.mpl11"
127+ SPDX.MPL_2_0 -> Known "stdenv.lib.licenses.mpl20"
128+ SPDX.MS_PL -> Known "stdenv.lib.licenses.mspl"
129+ SPDX.NCSA -> Known "stdenv.lib.licenses.ncsa"
130+ SPDX.NPOSL_3_0 -> Known "stdenv.lib.licenses.nposl3"
131+ SPDX.OFL_1_1 -> Known "stdenv.lib.licenses.ofl"
132+ SPDX.OLDAP_2_8 -> Known "stdenv.lib.licenses.openldap"
133+ SPDX.OpenSSL -> Known "stdenv.lib.licenses.openssl"
134+ SPDX.OSL_2_1 -> Known "stdenv.lib.licenses.osl21"
135+ SPDX.OSL_3_0 -> Known "stdenv.lib.licenses.osl3"
136+ SPDX.PHP_3_01 -> Known "stdenv.lib.licenses.php201"
137+ SPDX.PostgreSQL -> Known "stdenv.lib.licenses.postgresql"
138+ SPDX.Python_2_0 -> Known "stdenv.lib.licenses.psfl"
139+ SPDX.QPL_1_0 -> Known "stdenv.lib.licenses.qpl"
140+ SPDX.Ruby -> Known "stdenv.lib.licenses.ruby"
141+ SPDX.Sendmail -> Known "stdenv.lib.licenses.sendmail"
142+ SPDX.SGI_B_2_0 -> Known "stdenv.lib.licenses.sgi-b-0"
143+ SPDX.Sleepycat -> Known "stdenv.lib.licenses.sleepycat"
144+ SPDX.TCL -> Known "stdenv.lib.licenses.tcltx"
145+ SPDX.Unlicense -> Known "stdenv.lib.licenses.unlicense"
146+ SPDX.Vim -> Known "stdenv.lib.licenses.vim"
147+ SPDX.VSL_1_0 -> Known "stdenv.lib.licenses.vsl10"
148+ SPDX.Watcom_1_0 -> Known "stdenv.lib.licenses.watcom"
149+ SPDX.W3C -> Known "stdenv.lib.licenses.w3c"
150+ SPDX.WTFPL -> Known "stdenv.lib.licenses.wtfpl"
151+ SPDX.Zlib -> Known "stdenv.lib.licenses.zlib"
152+ SPDX.ZPL_2_0 -> Known "stdenv.lib.licenses.zpl20"
153+ SPDX.ZPL_2_1 -> Known "stdenv.lib.licenses.zpl21"
154+ _ ->
155+ -- Licence is not in Nixpkgs.
156+ -- Use the SPDX expression as a free-form license string.
157+ Unknown (Just $ prettyShow expr)
158+ _ ->
159+ -- Not handed: the '+' suffix and user-defined licences references.
160+ -- Use the SPDX expression as a free-form license string.
161+ Unknown (Just $ prettyShow expr)
162+ _ ->
163+ -- Not handled: compound expressions, not expressible in Nixpkgs.
164+ -- Use the SPDX expression as a free-form license string.
165+ Unknown (Just $ prettyShow expr)
166+
167+isFreeLicense :: Distribution.Nixpkgs.License.License -> Bool
168+isFreeLicense (Known "stdenv.lib.licenses.unfree") = False
169+isFreeLicense (Unknown Nothing) = False
170+isFreeLicense _ = True
src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs+33−16
@@ -29,6 +29,7 @@ libNixName "appindicator-0.1" = return "libappindicator-gtk2"
2929libNixName "appindicator3-0.1" = return "libappindicator-gtk3"
3030libNixName "asound" = return "alsaLib"
3131libNixName "b2" = return "libb2"
32+libNixName "boost_context" = return "boost"
3233libNixName "bz2" = return "bzip2"
3334libNixName "c++" = [] -- What is that?
3435libNixName "cairo-gobject" = return "cairo"
@@ -38,6 +39,8 @@ libNixName "cairo-svg" = return "cairo"
3839libNixName "crypt" = [] -- provided by glibc
3940libNixName "crypto" = return "openssl"
4041libNixName "curses" = return "ncurses"
42+libNixName "dbusmenu-glib-0.4" = return "libdbusmenu"
43+libNixName "dbusmenu-gtk3-0.4" = ["libdbusmenu-gtk3", "gtk3"]
4144libNixName "dl" = [] -- provided by glibc
4245libNixName "fftw3" = return "fftw"
4346libNixName "fftw3f" = return "fftwFloat"
@@ -45,18 +48,19 @@ libNixName "gconf" = return "GConf"
4548libNixName "gconf-2.0" = return "GConf"
4649libNixName "gdk-2.0" = return "gtk2"
4750libNixName "gdk-3.0" = return "gtk3"
48−libNixName "gdk-pixbuf-2.0" = return "gdk_pixbuf"
51+libNixName "gdk-pixbuf-2.0" = return "gdk-pixbuf"
4952libNixName "gdk-x11-2.0" = return "gdk_x11"
53+libNixName "gdk-x11-3.0" = return "gtk3"
5054libNixName "gio-2.0" = return "glib"
51−libNixName "GL" = return "mesa"
52−libNixName "GLU" = ["freeglut","mesa"]
53−libNixName "glut" = ["freeglut","mesa"]
54−libNixName "gnome-keyring" = return "gnome_keyring"
55−libNixName "gnome-keyring-1" = return "gnome_keyring"
56−libNixName "gnome-vfs-2.0" = return "gnome_vfs"
57−libNixName "gnome-vfs-module-2.0" = return "gnome_vfs_module"
55+libNixName "GL" = return "libGL"
56+libNixName "GLU" = ["libGLU","libGL"]
57+libNixName "glut" = ["freeglut","libGLU","libGL"]
58+libNixName "gnome-keyring" = return "gnome-keyring"
59+libNixName "gnome-keyring-1" = return "libgnome-keyring"
60+libNixName "gnome-vfs-2.0" = return "gnome-vfs"
61+libNixName "gnome-vfs-module-2.0" = return "gnome-vfs_module"
5862libNixName "gobject-2.0" = return "glib"
59−libNixName "gobject-introspection-1.0" = return "gobjectIntrospection"
63+libNixName "gobject-introspection-1.0" = return "gobject-introspection"
6064libNixName "gstreamer-audio-0.10" = return "gst-plugins-base"
6165libNixName "gstreamer-audio-1.0" = return "gst-plugins-base"
6266libNixName "gstreamer-base-0.10" = return "gst-plugins-base"
@@ -81,8 +85,8 @@ libNixName "ImageMagick" = return "imagemagick"
8185libNixName "Imlib2" = return "imlib2"
8286libNixName "iw" = return "wirelesstools"
8387libNixName "jack" = return "libjack2"
84−libNixName "javascriptcoregtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that.
85−libNixName "javascriptcoregtk-4.0" = return "webkitgtk" -- This is the current API, so let it reference an alias for the latest version.
88+libNixName "javascriptcoregtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that.
89+libNixName "javascriptcoregtk-4.0" = return "webkitgtk"
8690libNixName "jpeg" = return "libjpeg"
8791libNixName "jvm" = return "jdk"
8892libNixName "lapack" = return "liblapack"
@@ -91,18 +95,26 @@ libNixName "ldap" = return "openldap"
9195libNixName "libavutil" = return "ffmpeg"
9296libNixName "libgsasl" = return "gsasl"
9397libNixName "libpcre" = return "pcre"
98+libNixName "libpcre2" = return "pcre2"
99+libNixName "libpcre2-8" = libNixName "libpcre2"
100+libNixName "libqrencode" = return "qrencode"
94101libNixName "libR" = return "R"
95102libNixName "libsoup-gnome-2.4" = return "libsoup"
96103libNixName "libsystemd" = return "systemd"
104+libNixName "libudev" = return "systemd"
97105libNixName "libxml-2.0" = return "libxml2"
98106libNixName "libzip" = return "libzip"
99107libNixName "libzmq" = return "zeromq"
100108libNixName "m" = [] -- in stdenv
101109libNixName "magic" = return "file"
102110libNixName "MagickWand" = return "imagemagick"
111+libNixName "mnl" = return "libmnl"
103112libNixName "mpi" = return "openmpi"
104113libNixName "ncursesw" = return "ncurses"
105114libNixName "netsnmp" = return "net_snmp"
115+libNixName "nix-expr" = return "nix"
116+libNixName "nix-main" = return "nix"
117+libNixName "nix-store" = return "nix"
106118libNixName "notify" = return "libnotify"
107119libNixName "odbc" = return "unixODBC"
108120libNixName "openblas" = return "openblasCompat"
@@ -123,17 +135,17 @@ libNixName "Qt5Gui" = return "qt5"
123135libNixName "Qt5Qml" = return "qt5"
124136libNixName "Qt5Quick" = return "qt5"
125137libNixName "Qt5Widgets" = return "qt5"
138+libNixName "quadprog" = return "QuadProgpp"
126139libNixName "rt" = [] -- in glibc
127140libNixName "rtlsdr" = return "rtl-sdr"
128141libNixName "ruby1.8" = return "ruby"
129−libNixName "sane-backends" = return "saneBackends"
130142libNixName "sass" = return "libsass"
131143libNixName "sctp" = return "lksctp-tools" -- This is linux-specific, we should create a common attribute if we ever add sctp support for other systems.
132144libNixName "sdl2" = return "SDL2"
133−libNixName "ssh2" = return "libssh2"
134145libNixName "sndfile" = return "libsndfile"
135146libNixName "sodium" = return "libsodium"
136147libNixName "sqlite3" = return "sqlite"
148+libNixName "ssh2" = return "libssh2"
137149libNixName "ssl" = return "openssl"
138150libNixName "statgrab" = return "libstatgrab"
139151libNixName "stdc++" = [] -- What is that?
@@ -141,16 +153,20 @@ libNixName "stdc++.dll" = [] -- What is that?
141153libNixName "systemd-journal" = return "systemd"
142154libNixName "tag_c" = return "taglib"
143155libNixName "taglib_c" = return "taglib"
156+libNixName "tensorflow" = return "libtensorflow"
144157libNixName "udev" = return "systemd";
145158libNixName "uuid" = return "libossp_uuid";
159+libNixName "vte-2.91" = return "vte_291"
146160libNixName "wayland-client" = return "wayland"
147161libNixName "wayland-cursor" = return "wayland"
148−libNixName "wayland-egl" = return "mesa"
162+libNixName "wayland-egl" = return "libGL"
149163libNixName "wayland-server" = return "wayland"
150−libNixName "webkit2gtk-4.0" = return "webkitgtk" -- This is the current API, so let it reference an alias for the latest version.
151−libNixName "webkit2gtk-web-extension-4.0" = return "webkitgtk-web-extension" -- This package doesn't actually exist in nixpkgs at present.
164+libNixName "webkit2gtk" = return "webkitgtk"
165+libNixName "webkit2gtk-4.0" = return "webkitgtk"
166+libNixName "webkit2gtk-web-extension-4.0" = return "webkitgtk"
152167libNixName "webkitgtk-3.0" = return "webkitgtk24x-gtk3" -- These are the old APIs, of which 2.4 is the last provider, so map directly to that
153168libNixName "X11" = return "libX11"
169+libNixName "x11" = return "xlibsWrapper"
154170libNixName "xau" = return "libXau"
155171libNixName "Xcursor" = return "libXcursor"
156172libNixName "xerces-c" = return "xercesc"
@@ -166,6 +182,7 @@ libNixName "Xrender" = return "libXrender"
166182libNixName "Xss" = return "libXScrnSaver"
167183libNixName "Xtst" = return "libXtst"
168184libNixName "Xxf86vm" = return "libXxf86vm"
185+libNixName "yaml" = return "libyaml"
169186libNixName "yaml-0.1" = return "libyaml"
170187libNixName "z" = return "zlib"
171188libNixName "zmq" = return "zeromq"
src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs+1−20
@@ -1,17 +1,13 @@
11{-# LANGUAGE OverloadedStrings #-}
22
3−module Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize, normalizeCabalFlags ) where
3+module Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize ) where
44
55import Control.Lens
6−import Data.Function
7−import Data.List
86import qualified Data.Set as Set
97import Data.String
108import Distribution.Nixpkgs.Haskell
119import Distribution.Nixpkgs.Meta
1210import Distribution.Package
13−import Distribution.PackageDescription ( FlagAssignment, mkFlagName, unFlagName )
14−import Distribution.Simple.Utils ( lowercase )
1511import Language.Nix hiding ( quote )
1612
1713normalize :: Derivation -> Derivation
@@ -21,7 +17,6 @@ normalize drv = drv
2117 & over testDepends (normalizeBuildInfo (packageName drv))
2218 & over benchmarkDepends (normalizeBuildInfo (packageName drv))
2319 & over metaSection normalizeMeta
24− & over cabalFlags normalizeCabalFlags
2520 & jailbreak %~ (&& (packageName drv /= "jailbreak-cabal"))
2621
2722normalizeBuildInfo :: PackageName -> BuildInfo -> BuildInfo
@@ -46,17 +41,3 @@ quote ('\\':c:cs) = '\\' : c : quote cs
4641quote ('"':cs) = '\\' : '"' : quote cs
4742quote (c:cs) = c : quote cs
4843quote [] = []
49−
50−-- | When a flag is specified multiple times, the last occurrence counts. Flag
51−-- names are spelled all lowercase.
52−--
53−-- >>> normalizeCabalFlags [(mkFlagName "foo", True), (mkFlagName "FOO", True), (mkFlagName "Foo", False)]
54−-- [(FlagName "foo",False)]
55−
56−normalizeCabalFlags :: FlagAssignment -> FlagAssignment
57−normalizeCabalFlags flags =
58− sortBy (compare `on` fst) $
59− reverse $
60− nubBy ((==) `on` fst) $
61− reverse
62− [ (mkFlagName (lowercase (unFlagName n)), b) | (n, b) <- flags ]
src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+151−46
@@ -1,14 +1,19 @@
11{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE ScopedTypeVariables #-}
23
34module Distribution.Nixpkgs.Haskell.FromCabal.PostProcess ( postProcess, pkg ) where
45
56import Control.Lens
7+import Control.Monad.Trans.State
68import Data.List.Split
9+import Data.Map ( Map )
10+import qualified Data.Map as Map
11+import Data.Map.Lens
712import Data.Set ( Set )
813import qualified Data.Set as Set
9−import Data.Set.Lens
1014import Distribution.Nixpkgs.Haskell
1115import Distribution.Nixpkgs.Meta
16+import Distribution.Nixpkgs.License
1217import Distribution.Package
1318import Distribution.System
1419import Distribution.Text
@@ -16,7 +21,11 @@ import Distribution.Version
1621import Language.Nix
1722
1823postProcess :: Derivation -> Derivation
19−postProcess deriv = foldr ($) (fixGtkBuilds deriv) [ f | (Dependency n vr, f) <- hooks, packageName deriv == n, packageVersion deriv `withinRange` vr ]
24+postProcess deriv =
25+ foldr (.) id [ f | (Dependency n vr _, f) <- hooks, packageName deriv == n, packageVersion deriv `withinRange` vr ]
26+ . fixGtkBuilds
27+ . fixBuildDependsForTools
28+ $ deriv
2029
2130fixGtkBuilds :: Derivation -> Derivation
2231fixGtkBuilds drv = drv & dependencies . pkgconfig %~ Set.filter (not . collidesWithHaskellName)
@@ -24,53 +33,93 @@ fixGtkBuilds drv = drv & dependencies . pkgconfig %~ Set.filter (not . collidesW
2433 & dependencies . tool %~ Set.filter (not . collidesWithHaskellName)
2534 where
2635 collidesWithHaskellName :: Binding -> Bool
27− collidesWithHaskellName b = view localName b `Set.member` buildDeps
36+ collidesWithHaskellName b = case buildDeps Map.!? view localName b of
37+ Nothing -> False -- totally uncollided
38+ Just p -> p /= view reference b -- identical is not collision, and important to preserve for cross
2839
2940 myName :: Identifier
3041 myName = ident # unPackageName (packageName drv)
3142
32− buildDeps :: Set Identifier
33− buildDeps = Set.delete myName (setOf (dependencies . haskell . folded . localName) drv)
43+ buildDeps :: Map Identifier Path
44+ buildDeps = Map.delete myName (toMapOf (dependencies . haskell . to Set.toList . traverse . binding . ifolded) drv)
45+
46+-- Per https://github.com/haskell/cabal/issues/5412 hvr considers
47+-- `build-depends` providing executables an accident, and fragile one at that,
48+-- unworthy of any compatibility hacks. But while he and the other Hackage
49+-- maintainers is dedicated to fixing executables and libraries on Hackage, test
50+-- suites and benchmarks are not a priority, as it is trivial to skip building
51+-- test-suites with cabal-install. Nix however wishes to build test suites much
52+-- more widely, so skipping those components is not an option.
53+--
54+-- Between that, and Stack not changing behavior as of
55+-- https://github.com/commercialhaskell/stack/pull/4132, it seems likely that
56+-- for a while packages scraped from Hackage will continue to improperly use
57+-- `build-depends: package-for-tool` instead of `build-tool-depends` (which does
58+-- also work for Stack). Until that changes, we provide do this to work around
59+-- those package's brokenness.
60+fixBuildDependsForTools :: Derivation -> Derivation
61+fixBuildDependsForTools = foldr (.) id
62+ [ fmap snd $ runState $ do
63+ needs <- use $ cloneLens c . haskell . contains p
64+ cloneLens c . tool . contains p ||= needs
65+ | (c :: ALens' Derivation BuildInfo) <- [ testDepends, benchmarkDepends ]
66+ , p <- self <$> [ "hspec-discover"
67+ , "tasty-discover"
68+ , "hsx2hs"
69+ , "markdown-unlit"
70+ ]
71+ ]
3472
3573hooks :: [(Dependency, Derivation -> Derivation)]
3674hooks =
3775 [ ("Agda < 2.5", set (executableDepends . tool . contains (pkg "emacs")) True . set phaseOverrides agdaPostInstall)
3876 , ("Agda >= 2.5", set (executableDepends . tool . contains (pkg "emacs")) True . set phaseOverrides agda25PostInstall)
3977 , ("alex < 3.1.5", set (testDepends . tool . contains (pkg "perl")) True)
40− , ("alex", set (executableDepends . tool . contains (bind "self.happy")) True)
41− , ("alsa-core", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux))) , ("bustle", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
78+ , ("alex", set (executableDepends . tool . contains (self "happy")) True)
79+ , ("alsa-core", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux)))
4280 , ("bindings-GLFW", over (libraryDepends . system) (Set.union (Set.fromList [bind "pkgs.xorg.libXext", bind "pkgs.xorg.libXfixes"])))
43− , ("bindings-lxc", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux))) , ("bustle", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
44− , ("bustle", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
81+ , ("bindings-lxc", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux)))
82+ , ("bustle", bustleOverrides)
83+ , ("Cabal", set doCheck False) -- test suite doesn't work in Nix
84+ , ("Cabal >2.2", over (setupDepends . haskell) (Set.union (Set.fromList [self "mtl", self "parsec"]))) -- https://github.com/haskell/cabal/issues/5391
4585 , ("cabal-helper", set doCheck False) -- https://github.com/DanielG/cabal-helper/issues/17
4686 , ("cabal-install", set doCheck False . set phaseOverrides cabalInstallPostInstall)
47− , ("Cabal", set doCheck False) -- test suite doesn't work in Nix
87+ , ("cabal2nix > 2", cabal2nixOverrides)
4888 , ("darcs", set phaseOverrides darcsInstallPostInstall . set doCheck False)
4989 , ("dbus", set doCheck False) -- don't execute tests that try to access the network
5090 , ("dns", set testTarget "spec") -- don't execute tests that try to access the network
5191 , ("eventstore", over (metaSection . platforms) (Set.filter (\(Platform arch _) -> arch == X86_64)))
5292 , ("freenect < 1.2.1", over configureFlags (Set.union (Set.fromList ["--extra-include-dirs=${pkgs.freenect}/include/libfreenect", "--extra-lib-dirs=${pkgs.freenect}/lib"])))
93+ , ("fltkhs", set (libraryDepends . system . contains (pkg "fltk14")) True . over (libraryDepends . pkgconfig) (Set.union (pkgs ["libGLU", "libGL"]))) -- TODO: fltk14 belongs into the *setup* dependencies.
5394 , ("gf", set phaseOverrides gfPhaseOverrides . set doCheck False)
5495 , ("gi-cairo", giCairoPhaseOverrides) -- https://github.com/haskell-gi/haskell-gi/issues/36
96+ , ("gi-gdk", set runHaddock True )
97+ , ("gi-gio", set runHaddock True )
98+ , ("gi-glib", set runHaddock True )
99+ , ("gi-gst", giGstLibOverrides "gstreamer") -- https://github.com/haskell-gi/haskell-gi/issues/36
55100 , ("gi-gstaudio", giGstLibOverrides "gst-plugins-base") -- https://github.com/haskell-gi/haskell-gi/issues/36
56101 , ("gi-gstbase", giGstLibOverrides "gst-plugins-base") -- https://github.com/haskell-gi/haskell-gi/issues/36
57− , ("gi-gst", giGstLibOverrides "gstreamer") -- https://github.com/haskell-gi/haskell-gi/issues/36
58102 , ("gi-gstvideo", giGstLibOverrides "gst-plugins-base") -- https://github.com/haskell-gi/haskell-gi/issues/36
103+ , ("gi-gtk", set runHaddock True )
59104 , ("gi-javascriptcore < 4.0.0.0", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
60− , ("gio", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
61− , ("gi-pangocairo", giCairoPhaseOverrides) -- https://github.com/haskell-gi/haskell-gi/issues/36
62105 , ("gi-pango", giCairoPhaseOverrides) -- https://github.com/haskell-gi/haskell-gi/issues/36
63− , ("git-annex", gitAnnexHook)
106+ , ("gi-pango", set runHaddock True )
107+ , ("gi-pangocairo", giCairoPhaseOverrides) -- https://github.com/haskell-gi/haskell-gi/issues/36
108+ , ("gi-vte", set runHaddock True )
109+ , ("gi-webkit", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
110+ , ("gio", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
111+ , ("git", set doCheck False) -- https://github.com/vincenthz/hit/issues/33
64112 , ("git-annex >= 6.20170925 && < 6.20171214", set doCheck False) -- some versions of git-annex require their test suite to be run inside of a git checkout
113+ , ("git-annex", gitAnnexHook)
65114 , ("github-backup", set (executableDepends . tool . contains (pkg "git")) True)
66− , ("git", set doCheck False) -- https://github.com/vincenthz/hit/issues/33
67− , ("gi-webkit", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
115+ , ("GLFW", over (libraryDepends . system) (Set.union (Set.fromList [bind "pkgs.xorg.libXext", bind "pkgs.xorg.libXfixes"])))
68116 , ("GlomeVec", set (libraryDepends . pkgconfig . contains (bind "self.llvmPackages.llvm")) True)
117+ , ("graphviz", set (testDepends . system . contains (pkg "graphviz")) True)
69118 , ("gtk3", gtk3Hook)
119+ , ("gtkglext", gtkglextHook)
70120 , ("haddock", haddockHook) -- https://github.com/haskell/haddock/issues/511
71121 , ("hakyll", set (testDepends . tool . contains (pkg "utillinux")) True) -- test suite depends on "rev"
72122 , ("haskell-src-exts", set doCheck False)
73− , ("hspec-core >= 2.4.4", hspecCoreOverrides)
74123 , ("hfsevents", hfseventsOverrides)
75124 , ("HFuse", set phaseOverrides hfusePreConfigure)
76125 , ("hlibgit2 >= 0.18.0.14", set (testDepends . tool . contains (pkg "git")) True)
@@ -78,30 +127,34 @@ hooks =
78127 , ("holy-project", set doCheck False) -- attempts to access the network
79128 , ("hoogle", set testTarget "--test-option=--no-net")
80129 , ("hsignal < 0.2.7.4", set phaseOverrides "prePatch = \"rm -v Setup.lhs\";") -- https://github.com/amcphail/hsignal/issues/1
81− , ("hslua < 0.9.3", over (libraryDepends . each) (replace (pkg "lua") (pkg "lua5_1")))
82− , ("hslua >= 0.9.3", over (libraryDepends . each) (replace (pkg "lua") (pkg "lua5_3")))
83− , ("http-client-openssl >= 0.2.0.1", set doCheck False) -- attempts to access the network
130+ , ("hslua < 0.9.3", over (libraryDepends . system) (replace (pkg "lua") (pkg "lua5_1")))
131+ , ("hslua >= 0.9.3", over (libraryDepends . system) (replace (pkg "lua") (pkg "lua5_3")))
132+ , ("hspec-core >= 2.4.4", hspecCoreOverrides)
84133 , ("http-client", set doCheck False) -- attempts to access the network
134+ , ("http-client-openssl >= 0.2.0.1", set doCheck False) -- attempts to access the network
85135 , ("http-client-tls >= 0.2.2", set doCheck False) -- attempts to access the network
86136 , ("http-conduit", set doCheck False) -- attempts to access the network
87137 , ("imagemagick", set (libraryDepends . pkgconfig . contains (pkg "imagemagick")) True) -- https://github.com/NixOS/cabal2nix/issues/136
88− , ("include-file <= 0.1.0.2", set (libraryDepends . haskell . contains (bind "self.random")) True) -- https://github.com/Daniel-Diaz/include-file/issues/1
138+ , ("include-file <= 0.1.0.2", set (libraryDepends . haskell . contains (self "random")) True) -- https://github.com/Daniel-Diaz/include-file/issues/1
89139 , ("js-jquery", set doCheck False) -- attempts to access the network
90140 , ("libconfig", over (libraryDepends . system) (replace "config = null" (pkg "libconfig")))
91141 , ("libxml", set (configureFlags . contains "--extra-include-dir=${libxml2.dev}/include/libxml2") True)
92142 , ("liquid-fixpoint", set (executableDepends . system . contains (pkg "ocaml")) True . set (testDepends . system . contains (pkg "z3")) True . set (testDepends . system . contains (pkg "nettools")) True . set (testDepends . system . contains (pkg "git")) True . set doCheck False)
93143 , ("liquidhaskell", set (testDepends . system . contains (pkg "z3")) True)
94− , ("lzma-clib", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Windows)) . set (libraryDepends . haskell . contains (bind "self.only-buildable-on-windows")) False)
95− , ("MFlow < 4.6", set (libraryDepends . tool . contains (bind "self.cpphs")) True)
144+ , ("lzma-clib", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Windows)) . set (libraryDepends . haskell . contains (self "only-buildable-on-windows")) False)
145+ , ("MFlow < 4.6", set (libraryDepends . tool . contains (self "cpphs")) True)
96146 , ("mwc-random", set doCheck False)
97147 , ("mysql", set (libraryDepends . system . contains (pkg "mysql")) True)
98148 , ("network-attoparsec", set doCheck False) -- test suite requires network access
99149 , ("numeric-qq", set doCheck False) -- test suite doesn't finish even after 1+ days
100150 , ("opencv", opencvOverrides)
101− , ("pandoc >= 1.16.0.2", set doCheck False) -- https://github.com/jgm/pandoc/issues/2709 and https://github.com/fpco/stackage/issues/1332
102− , ("pandoc-citeproc", set doCheck False) -- https://github.com/jgm/pandoc-citeproc/issues/172
103− , ("pandoc", set jailbreak False) -- jailbreak-cabal break the build
151+ , ("pandoc >= 1.16.0.2 && < 2.5", set doCheck False) -- https://github.com/jgm/pandoc/issues/2709 and https://github.com/fpco/stackage/issues/1332
152+ , ("pandoc < 2.6", pandocPre26Overrides)
153+ , ("pandoc >= 2.6", pandocOverrides)
154+ , ("pandoc-citeproc", set doCheck False) -- https://github.com/jgm/pandoc-citeproc/issues/369
104155 , ("purescript", set doCheck False) -- test suite doesn't cope with Nix build env
156+ , ("proto-lens-protobuf-types", set (libraryDepends . tool . contains (pkg "protobuf")) True)
157+ , ("proto-lens-protoc", set (libraryDepends . tool . contains (pkg "protobuf")) True)
105158 , ("qtah-cpp-qt5", set (libraryDepends . system . contains (bind "pkgs.qt5.qtbase")) True)
106159 , ("qtah-qt5", set (libraryDepends . tool . contains (bind "pkgs.qt5.qtbase")) True)
107160 , ("readline", over (libraryDepends . system) (Set.union (pkgs ["readline", "ncurses"])))
@@ -115,26 +168,31 @@ hooks =
115168 , ("target", set (testDepends . system . contains (pkg "z3")) True)
116169 , ("terminfo", set (libraryDepends . system . contains (pkg "ncurses")) True)
117170 , ("text", set doCheck False) -- break infinite recursion
118− , ("thyme", set (libraryDepends . tool . contains (bind "self.cpphs")) True) -- required on Darwin
171+ , ("tensorflow-proto", set (libraryDepends . tool . contains (pkg "protobuf")) True)
172+ , ("thyme", set (libraryDepends . tool . contains (self "cpphs")) True) -- required on Darwin
119173 , ("twilio", set doCheck False) -- attempts to access the network
120174 , ("tz", set phaseOverrides "preConfigure = \"export TZDIR=${pkgs.tzdata}/share/zoneinfo\";")
121− , ("udev", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux))) , ("bustle", set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True)
122− , ("webkitgtk3-javascriptcore", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
175+ , ("udev", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Linux)))
123176 , ("webkitgtk3", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
177+ , ("webkitgtk3-javascriptcore", webkitgtk24xHook) -- https://github.com/haskell-gi/haskell-gi/issues/36
124178 , ("websockets", set doCheck False) -- https://github.com/jaspervdj/websockets/issues/104
125179 , ("Win32", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Windows)))
126180 , ("Win32-shortcut", over (metaSection . platforms) (Set.filter (\(Platform _ os) -> os == Windows)))
127− , ("wxcore", set (libraryDepends . pkgconfig . contains (pkg "wxGTK")) True)
128181 , ("wxc", wxcHook)
182+ , ("wxcore", set (libraryDepends . pkgconfig . contains (pkg "wxGTK")) True)
129183 , ("X11", over (libraryDepends . system) (Set.union (Set.fromList $ map bind ["pkgs.xorg.libXinerama","pkgs.xorg.libXext","pkgs.xorg.libXrender","pkgs.xorg.libXScrnSaver"])))
130− , ("xmonad", set phaseOverrides xmonadPostInstall)
131− , ("zip-archive < 0.3.1", over (testDepends . tool) (replace (bind "self.zip") (pkg "zip")))
184+ , ("xmonad >= 0.14.2", set phaseOverrides xmonadPostInstall)
185+ , ("zip-archive < 0.3.1", over (testDepends . tool) (replace (self "zip") (pkg "zip")))
132186 , ("zip-archive >= 0.3.1 && < 0.3.2.3", over (testDepends . tool) (Set.union (Set.fromList [pkg "zip", pkg "unzip"]))) -- https://github.com/jgm/zip-archive/issues/35
187+ , ("zip-archive >= 0.4", set (testDepends . tool . contains (pkg "which")) True)
133188 ]
134189
135190pkg :: Identifier -> Binding
136191pkg i = binding # (i, path # ["pkgs",i])
137192
193+self :: Identifier -> Binding
194+self i = binding # (i, path # ["self",i])
195+
138196pkgs :: [Identifier] -> Set Binding
139197pkgs = Set.fromList . map pkg
140198
@@ -144,10 +202,18 @@ bind s = binding # (i, path # is)
144202 is = map (review ident) (splitOn "." s)
145203 i = last is
146204
205+-- | @replace old new bset@ replaces the Nix binding @old@ with @new@ in the
206+-- set of bindings @bset@. If @old@ is not found in @bset@, then the function
207+-- fails with an 'error'.
147208replace :: Binding -> Binding -> Set Binding -> Set Binding
148−replace old new bs = if old `Set.member` bs then Set.insert new (Set.delete old bs) else bs
209+replace old new bs
210+ | old `Set.member` bs = Set.insert new (Set.delete old bs)
211+ | otherwise = error (unwords [ "post-process: cannot replace name binding"
212+ , show old, "by", show new
213+ , "because it's not found in set"
214+ , show bs
215+ ])
149216
150−-- TODO: I need to figure out how to conveniently replace a binding in a set.
151217gtk3Hook :: Derivation -> Derivation -- https://github.com/NixOS/cabal2nix/issues/145
152218gtk3Hook = set (libraryDepends . pkgconfig . contains (pkg "gtk3")) True
153219 . over (libraryDepends . pkgconfig) (Set.filter (\b -> view localName b /= "gtk3"))
@@ -164,13 +230,12 @@ gitAnnexHook = set phaseOverrides gitAnnexOverrides
164230 where
165231 gitAnnexOverrides = unlines
166232 [ "preConfigure = \"export HOME=$TEMPDIR; patchShebangs .\";"
167− , "installPhase = \"make PREFIX=$out BUILDER=: install\";"
168− , "checkPhase = ''"
233+ , "postBuild = ''"
169234 , " ln -sf dist/build/git-annex/git-annex git-annex"
170235 , " ln -sf git-annex git-annex-shell"
171− , " export PATH+=\":$PWD\""
172− , " git-annex test"
173236 , "'';"
237+ , "installPhase = \"make PREFIX=$out BUILDER=: install install-completions\";"
238+ , "checkPhase = ''PATH+=\":$PWD\" git-annex test'';"
174239 , "enableSharedExecutables = false;"
175240 ]
176241 buildInputs = pkgs ["git","rsync","gnupg","curl","wget","lsof","openssh","which","bup","perl"]
@@ -191,13 +256,13 @@ gfPhaseOverrides = unlines
191256 , " sed -i \"s|numJobs (bf bi)++||\" ./Setup.hs"
192257 -- Parallel compilation fails. Disable it.
193258 , "'';"
194− , "preBuild = ''export LD_LIBRARY_PATH=`pwd`/dist/build:$LD_LIBRARY_PATH'';"
259+ , "preBuild = ''export LD_LIBRARY_PATH=`pwd`/dist/build''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH'';"
195260 -- The build step itself, after having built the library, needs to be able
196261 -- to find the library it just built in order to compile grammar files.
197262 ]
198263
199264wxcHook :: Derivation -> Derivation
200−wxcHook drv = drv & libraryDepends . system %~ Set.union (Set.fromList [pkg "mesa", bind "pkgs.xorg.libX11"])
265+wxcHook drv = drv & libraryDepends . system %~ Set.union (Set.fromList [pkg "libGL", bind "pkgs.xorg.libX11"])
201266 & libraryDepends . pkgconfig . contains (pkg "wxGTK") .~ True
202267 & phaseOverrides .~ wxcPostInstall (packageVersion drv)
203268 & runHaddock .~ False
@@ -227,10 +292,8 @@ darcsInstallPostInstall = unlines
227292xmonadPostInstall :: String
228293xmonadPostInstall = unlines
229294 [ "postInstall = ''"
230− , " shopt -s globstar"
231− , " mkdir -p $doc/share/man/man1"
232− , " mv \"$data/\"**\"/man/\"*[0-9] $doc/share/man/man1/"
233− , " rm \"$data/\"**\"/man/\"*"
295+ , " install -D man/xmonad.1 ''${!outputDoc}/share/man/man1/xmonad.1"
296+ , " install -D man/xmonad.hs ''${!outputDoc}/share/doc/$name/sample-xmonad.hs"
234297 , "'';"
235298 ]
236299
@@ -297,8 +360,50 @@ webkitgtk24xHook = set (libraryDepends . pkgconfig . contains (pkg "webkitgtk24x
297360opencvOverrides :: Derivation -> Derivation
298361opencvOverrides = set phaseOverrides "hardeningDisable = [ \"bindnow\" ];"
299362 . over (libraryDepends . pkgconfig) (replace (pkg "opencv") (pkg "opencv3"))
300− . set (configureFlags . contains "--with-gcc=${stdenv.cc}/bin/c++") True
301− . set (configureFlags . contains "--with-ld=${stdenv.cc}/bin/c++") True
302363
303364hspecCoreOverrides :: Derivation -> Derivation -- https://github.com/hspec/hspec/issues/330
304365hspecCoreOverrides = set phaseOverrides "testTarget = \"--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'\";"
366+
367+cabal2nixOverrides :: Derivation -> Derivation
368+cabal2nixOverrides = set phaseOverrides $ unlines
369+ [ "preCheck = ''"
370+ , " export PATH=\"$PWD/dist/build/cabal2nix:$PATH\""
371+ , " export HOME=\"$TMPDIR/home\""
372+ , "'';"
373+ ]
374+
375+gtkglextHook :: Derivation -> Derivation
376+gtkglextHook = over (libraryDepends . system) (Set.union (Set.fromList deps))
377+ where
378+ deps :: [Binding]
379+ deps = bind <$> [ "pkgs.gtk2"
380+ , "pkgs.libGLU"
381+ , "pkgs.xorg.libSM"
382+ , "pkgs.xorg.libICE"
383+ , "pkgs.xorg.libXt"
384+ , "pkgs.xorg.libXmu"
385+ ]
386+
387+pandocPre26Overrides :: Derivation -> Derivation
388+pandocPre26Overrides = set phaseOverrides postInstall
389+ where
390+ postInstall = unlines [ "postInstall = ''"
391+ , " mkdir -p $out/share"
392+ , " mv $data/*/*/man $out/share/"
393+ , "'';"
394+ ]
395+
396+pandocOverrides :: Derivation -> Derivation
397+pandocOverrides = set phaseOverrides postInstall
398+ where
399+ postInstall = unlines [ "postInstall = ''"
400+ , " mkdir -p $out/share/man/man1"
401+ , " mv \"man/\"*.1 $out/share/man/man1/"
402+ , "'';"
403+ ]
404+
405+bustleOverrides :: Derivation -> Derivation
406+bustleOverrides = set (libraryDepends . pkgconfig . contains "system-glib = pkgs.glib") True
407+ . set (executableDepends . pkgconfig . contains "gio-unix = null") False
408+ . set (metaSection . license) (Known "stdenv.lib.licenses.lgpl21Plus")
409+ . set (metaSection . hydraPlatforms) allKnownPlatforms
src/Distribution/Nixpkgs/Haskell/Hackage.hs+3−2
@@ -1,7 +1,8 @@
11module Distribution.Nixpkgs.Haskell.Hackage
22 ( HackageDB, PackageData, VersionData(..)
3− , hackageTarball, readTarball
4− ) where
3+ , hackageTarball, readTarball, parsePackageData
4+ )
5+ where
56
67import Data.Map as Map
78import qualified Distribution.Hackage.DB.Parsed as P
src/Distribution/Nixpkgs/Haskell/OrphanInstances.hs+29−54
@@ -8,62 +8,15 @@ import Data.String
88import qualified Data.Text as T
99import Data.Yaml
1010import Distribution.Compiler
11−import Distribution.License
1211import Distribution.Package
13−import Distribution.PackageDescription
12+import Distribution.Parsec
1413import Distribution.System
15−import Distribution.Text
16−import Distribution.Types.CondTree
17−import Distribution.Types.ExecutableScope
18−import Distribution.Types.ForeignLib
19−import Distribution.Types.ForeignLibOption
20−import Distribution.Types.ForeignLibType
21−import Distribution.Types.IncludeRenaming
22−import Distribution.Types.Mixin
14+import Distribution.Pretty as Cabal
15+import qualified Data.Version as Base
2316import Distribution.Version
24−import Language.Haskell.Extension
25−
26−instance NFData SetupBuildInfo
27−instance (NFData v, NFData c, NFData a) => NFData (CondTree v c a)
28−instance (NFData v, NFData c, NFData a) => NFData (CondBranch v c a)
29−instance NFData Arch
30−instance NFData Benchmark
31−instance NFData BenchmarkInterface
32−instance NFData BenchmarkType
33−instance NFData BuildInfo
34−instance NFData BuildType
35−instance NFData LibVersionInfo
36−instance NFData CompilerFlavor
37−instance NFData ConfVar
38−instance NFData ExecutableScope
39−instance NFData IncludeRenaming
40−instance NFData ForeignLibType
41−instance NFData ForeignLibOption
42−instance NFData Executable
43−instance NFData Extension
44−instance NFData Flag
45−instance NFData Mixin
46−instance NFData FlagName
47−instance NFData GenericPackageDescription
48−instance NFData KnownExtension
49−instance NFData Language
50−instance NFData Library
51−instance NFData ForeignLib
52−instance NFData License
53−instance NFData ModuleReexport
54−instance NFData ModuleRenaming
55−instance NFData OS
56−instance NFData PackageDescription
57−instance NFData RepoKind
58−instance NFData RepoType
59−instance NFData SourceRepo
60−instance NFData TestSuite
61−instance NFData TestSuiteInterface
62−instance NFData TestType
63−instance NFData a => NFData (Condition a)
64−instance NFData Platform
17+import Language.Nix.PrettyPrinting as Nix
18+
6519instance NFData CompilerInfo
66−instance NFData CompilerId
6720instance NFData AbiTag
6821
6922instance IsString Version where
@@ -99,6 +52,10 @@ instance FromJSON PackageIdentifier where
9952 parseJSON (String s) = return (fromString (T.unpack s))
10053 parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell package identifier")
10154
55+instance FromJSON VersionRange where
56+ parseJSON (String s) = return (fromString (T.unpack s))
57+ parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Cabal VersionRange")
58+
10259instance FromJSON Dependency where
10360 parseJSON (String s) = return (fromString (T.unpack s))
10461 parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell Dependency")
@@ -107,7 +64,25 @@ instance FromJSON CompilerInfo where
10764 parseJSON (String s) = return (unknownCompilerInfo (fromString (T.unpack s)) NoAbiTag)
10865 parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell compiler")
10966
67+instance Nix.Pretty Version where
68+ pPrint = pretty
69+
70+instance Nix.Pretty PackageName where
71+ pPrint = pretty
72+
73+instance Nix.Pretty PackageIdentifier where
74+ pPrint = pretty
75+
76+instance Nix.Pretty CompilerId where
77+ pPrint = pretty
78+
79+instance Nix.Pretty Platform where
80+ pPrint = pretty
81+
82+instance Nix.Pretty Base.Version where
83+ pPrint = text . Base.showVersion
84+
11085-- parsing tools
11186
112−text2isString :: Text a => String -> String -> a
113−text2isString t s = fromMaybe (error ("fromString: " ++ show s ++ " is not a valid " ++ t)) (simpleParse s)
87+text2isString :: Parsec a => String -> String -> a
88+text2isString t s = fromMaybe (error ("fromString: " ++ show s ++ " is not a valid " ++ t)) (simpleParsec s)
src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs+100−54
@@ -1,31 +1,42 @@
11module Distribution.Nixpkgs.Haskell.PackageSourceSpec
2− ( Package(..), getPackage, getPackage', loadHackageDB, sourceFromHackage
2+ ( HpackUse(..), Package(..), getPackage, getPackage', loadHackageDB, sourceFromHackage
33 ) where
44
55import qualified Control.Exception as Exception
66import Control.Monad
77import Control.Monad.IO.Class
88import Control.Monad.Trans.Maybe
9+import Data.Bifunctor
10+import qualified Data.ByteString.Char8 as BS
911import Data.List ( isSuffixOf, isPrefixOf )
1012import qualified Data.Map as DB
1113import Data.Maybe
14+import qualified Data.Text as T
15+import qualified Data.Text.Encoding as T
1216import Data.Time
1317import Distribution.Nixpkgs.Fetch
1418import Distribution.Nixpkgs.Hashes
1519import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
20+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
1621import qualified Distribution.Package as Cabal
1722import Distribution.PackageDescription
1823import qualified Distribution.PackageDescription as Cabal
19−import Distribution.PackageDescription.Parse as Cabal
20−import Distribution.Text ( simpleParse, display )
24+import Distribution.PackageDescription.Parsec as Cabal
25+import Distribution.Parsec
2126import Distribution.Version
22−import qualified Hpack.Render as Hpack
2327import qualified Hpack.Config as Hpack
24−import OpenSSL.Digest ( digestString, digestByName )
28+import qualified Hpack.Render as Hpack
29+import OpenSSL.Digest ( digest, digestByName )
2530import System.Directory ( doesDirectoryExist, doesFileExist, createDirectoryIfMissing, getHomeDirectory, getDirectoryContents )
2631import System.Exit ( exitFailure )
2732import System.FilePath ( (</>), (<.>) )
28−import System.IO ( hPutStrLn, stderr, hPutStr )
33+import System.IO
34+import Text.PrettyPrint.HughesPJClass hiding ( first )
35+
36+data HpackUse
37+ = ForceHpack
38+ | PackageYamlHpack
39+ | NoHpack
2940
3041data Package = Package
3142 { pkgSource :: DerivationSource
@@ -34,39 +45,45 @@ data Package = Package
3445 }
3546 deriving (Show)
3647
37−getPackage :: Bool
38− -- ^ Whether hpack should regenerate the cabal file.
48+getPackage :: HpackUse
49+ -- ^ the way hpack should be used.
50+ -> Bool
51+ -- ^ Whether to fetch submodules if fetching from git
3952 -> Maybe FilePath
4053 -- ^ The path to the Hackage database.
4154 -> Maybe UTCTime
4255 -- ^ If we have hackage-snapshot time.
4356 -> Source
4457 -> IO Package
45−getPackage optHpack optHackageDB optHackageSnapshot =
46− getPackage' optHpack (loadHackageDB optHackageDB optHackageSnapshot)
58+getPackage optHpack optSubmodules optHackageDB optHackageSnapshot =
59+ getPackage' optHpack optSubmodules (loadHackageDB optHackageDB optHackageSnapshot)
4760
48−getPackage' :: Bool
49− -- ^ Whether hpack should regenerate the cabal file.
61+getPackage' :: HpackUse
62+ -- ^ the way hpack should be used.
63+ -> Bool
64+ -- ^ Whether to fetch submodules if fetching from git
5065 -> IO DB.HackageDB
5166 -> Source
5267 -> IO Package
53−getPackage' optHpack hackageDB source = do
54− (derivSource, ranHpack, pkgDesc) <- fetchOrFromDB optHpack hackageDB source
68+getPackage' optHpack optSubmodules hackageDB source = do
69+ (derivSource, ranHpack, pkgDesc) <- fetchOrFromDB optHpack optSubmodules hackageDB source
5570 (\s -> Package s ranHpack pkgDesc) <$> maybe (sourceFromHackage (sourceHash source) (showPackageIdentifier pkgDesc) $ sourceCabalDir source) return derivSource
5671
57−fetchOrFromDB :: Bool
58− -- ^ Whether hpack should regenerate the cabal file
72+fetchOrFromDB :: HpackUse
73+ -- ^ the way hpack should be used
74+ -> Bool
75+ -- ^ Whether to fetch submodules if fetching from git
5976 -> IO DB.HackageDB
6077 -> Source
6178 -> IO (Maybe DerivationSource, Bool, Cabal.GenericPackageDescription)
62−fetchOrFromDB optHpack hackageDB src
79+fetchOrFromDB optHpack optSubmodules hackageDB src
6380 | "cabal://" `isPrefixOf` sourceUrl src = do
6481 (msrc, pkgDesc) <- fromDB hackageDB . drop (length "cabal://") $ sourceUrl src
6582 return (msrc, False, pkgDesc)
6683 | otherwise = do
67− r <- fetch (\dir -> cabalFromPath optHpack (dir </> sourceCabalDir src)) src
84+ r <- fetch optSubmodules (\dir -> cabalFromPath optHpack (dir </> sourceCabalDir src)) src
6885 case r of
69− Nothing -> fail "Failed to fetch source. Does the URL exist?"
86+ Nothing -> fail $ "Failed to fetch source. Does this source exist? " ++ show src
7087 Just (derivSource, (externalSource, ranHpack, pkgDesc)) ->
7188 return (derivSource <$ guard externalSource, ranHpack, pkgDesc)
7289
@@ -87,16 +104,16 @@ fromDB hackageDBIO pkg = do
87104 vd <- maybe unknownPackageError return (DB.lookup name hackageDB >>= lookupVersion)
88105 let ds = case DB.tarballSha256 vd of
89106 Nothing -> Nothing
90− Just hash -> Just (DerivationSource "url" url "" hash)
107+ Just hash -> Just (urlDerivationSource url hash)
91108 return (ds, setCabalFileHash (DB.cabalFileSha256 vd) (DB.cabalFile vd))
92109 where
93110 pkgId :: Cabal.PackageIdentifier
94− pkgId = fromMaybe (error ("invalid Haskell package id " ++ show pkg)) (simpleParse pkg)
111+ pkgId = fromMaybe (error ("invalid Haskell package id " ++ show pkg)) (simpleParsec pkg)
95112 name = Cabal.packageName pkgId
96113
97− unknownPackageError = fail $ "No such package " ++ display pkgId ++ " in the cabal database. Did you run cabal update?"
114+ unknownPackageError = fail $ "No such package " ++ prettyShow pkgId ++ " in the cabal database. Did you run cabal update?"
98115
99− url = "mirror://hackage/" ++ display pkgId ++ ".tar.gz"
116+ url = "mirror://hackage/" ++ prettyShow pkgId ++ ".tar.gz"
100117
101118 version :: Version
102119 version = Cabal.packageVersion pkgId
@@ -133,20 +150,20 @@ sourceFromHackage optHash pkgId cabalDir = do
133150 -- Use the cached hash (either from cache file or given on cmdline via sha256 opt)
134151 -- if available, otherwise download from hackage to compute hash.
135152 case cachedHash of
136− Guess hash -> return $ DerivationSource "url" url "" hash
153+ Guess hash -> return $ urlDerivationSource url hash
137154 Certain hash ->
138155 -- We need to force the hash here. If we didn't do this, then when reading the
139156 -- hash from the cache file, the cache file will still be open for reading
140157 -- (because lazy io) when writeFile opens the file again for writing. By forcing
141158 -- the hash here, we ensure that the file is closed before opening it again.
142159 seq (length hash) $
143− DerivationSource "url" url "" hash <$ writeFile cacheFile hash
160+ urlDerivationSource url hash <$ writeFile cacheFile hash
144161 UnknownHash -> do
145162 maybeHash <- runMaybeT (derivHash . fst <$> fetchWith (False, "url", []) (Source url "" UnknownHash cabalDir))
146163 case maybeHash of
147164 Just hash ->
148165 seq (length hash) $
149− DerivationSource "url" url "" hash <$ writeFile cacheFile hash
166+ urlDerivationSource url hash <$ writeFile cacheFile hash
150167 Nothing -> do
151168 hPutStr stderr $ unlines
152169 [ "*** cannot compute hash. (Not a hackage project?)"
@@ -159,12 +176,12 @@ sourceFromHackage optHash pkgId cabalDir = do
159176 exitFailure
160177
161178showPackageIdentifier :: Cabal.GenericPackageDescription -> String
162−showPackageIdentifier pkgDesc = name ++ "-" ++ display version where
179+showPackageIdentifier pkgDesc = name ++ "-" ++ prettyShow version where
163180 pkgId = Cabal.package . Cabal.packageDescription $ pkgDesc
164181 name = Cabal.unPackageName (Cabal.packageName pkgId)
165182 version = Cabal.packageVersion pkgId
166183
167−cabalFromPath :: Bool -- ^ Whether hpack should regenerate the cabal file
184+cabalFromPath :: HpackUse -- ^ the way hpack should be used
168185 -> FilePath -> MaybeT IO (Bool, Bool, Cabal.GenericPackageDescription)
169186cabalFromPath optHpack path = do
170187 d <- liftIO $ doesDirectoryExist path
@@ -174,50 +191,79 @@ cabalFromPath optHpack path = do
174191 return (d, ranHpack, pkg)
175192 else (,,) d False <$> cabalFromFile False path
176193
177−cabalFromDirectory :: Bool -- ^ Whether hpack should regenerate the cabal file
194+cabalFromDirectory :: HpackUse -- ^ the way hpack should be used
178195 -> FilePath -> MaybeT IO (Bool, Cabal.GenericPackageDescription)
179−cabalFromDirectory True dir = hpackDirectory dir
180−cabalFromDirectory False dir = do
196+cabalFromDirectory ForceHpack dir = hpackDirectory dir
197+cabalFromDirectory NoHpack dir = onlyCabalFromDirectory dir "*** No .cabal file was found. Exiting."
198+cabalFromDirectory PackageYamlHpack dir = do
199+ useHpack <- liftIO $ doesFileExist (dir </> "package.yaml")
200+ if useHpack
201+ then do
202+ liftIO $ hPutStrLn stderr "*** found package.yaml. Using hpack..."
203+ hpackDirectory dir
204+ else onlyCabalFromDirectory dir "*** Found neither a .cabal file nor package.yaml. Exiting."
205+
206+onlyCabalFromDirectory :: FilePath -> String -> MaybeT IO (Bool, Cabal.GenericPackageDescription)
207+onlyCabalFromDirectory dir errMsg = do
181208 cabals <- liftIO $ getDirectoryContents dir >>= filterM doesFileExist . map (dir </>) . filter (".cabal" `isSuffixOf`)
182209 case cabals of
183− [] -> do
184− liftIO $ hPutStrLn stderr "*** found zero cabal files. Trying hpack..."
185− hpackDirectory dir
210+ [] -> fail errMsg
186211 [cabalFile] -> (,) False <$> cabalFromFile True cabalFile
187− _ -> liftIO $ fail ("*** found more than one cabal file (" ++ show cabals ++ "). Exiting.")
212+ _ -> liftIO $ fail ("*** found more than one cabal file (" ++ show cabals ++ "). Exiting.")
188213
189214handleIO :: (Exception.IOException -> IO a) -> IO a -> IO a
190215handleIO = Exception.handle
191216
217+encodeUtf8 :: String -> BS.ByteString
218+encodeUtf8 = T.encodeUtf8 . T.pack
219+
192220hpackDirectory :: FilePath -> MaybeT IO (Bool, Cabal.GenericPackageDescription)
193221hpackDirectory dir = do
194− mPackage <- liftIO $ Hpack.readPackageConfig Hpack.defaultDecodeOptions {Hpack.decodeOptionsTarget = dir </> Hpack.packageConfig}
222+ mPackage <- liftIO $ Hpack.readPackageConfig Hpack.defaultDecodeOptions {
223+ Hpack.decodeOptionsProgramName = Hpack.ProgramName "cabal2nix"
224+ , Hpack.decodeOptionsTarget = dir </> Hpack.packageConfig
225+ }
195226 case mPackage of
196227 Left err -> liftIO $ hPutStrLn stderr ("*** hpack error: " ++ show err ++ ". Exiting.") >> exitFailure
197− Right (Hpack.DecodeResult pkg' _ _) -> do
198− let hpackOutput = Hpack.renderPackage [] pkg'
199− hash = printSHA256 $ digestString (digestByName "sha256") hpackOutput
200− case parseGenericPackageDescription hpackOutput of
201− ParseFailed perr -> liftIO $ do
202− hPutStrLn stderr $ "*** cannot parse hpack output: " ++ show perr
203− hPutStrLn stderr $ "*** hpack output:\n" ++ hpackOutput
228+ Right r -> do
229+ let hpackOutput =
230+ let body = Hpack.renderPackage [] (Hpack.decodeResultPackage r)
231+ cabalVersion = Hpack.decodeResultCabalVersion r
232+ in encodeUtf8 $ cabalVersion ++ body
233+ hash = printSHA256 $ digest (digestByName "sha256") hpackOutput
234+ case runParseGenericPackageDescription "<hpack output>" hpackOutput of
235+ Left msg -> liftIO $ do
236+ hPutStrLn stderr "*** hpack output:"
237+ BS.hPutStrLn stderr hpackOutput
238+ hPutStrLn stderr "*** cannot parse hpack output:"
239+ hPutStrLn stderr msg
204240 fail "*** Exiting."
205− ParseOk _ pkg -> MaybeT $ return $ Just $ (,) True $ setCabalFileHash hash pkg
241+ Right pkg -> MaybeT $ return $ Just $ (,) True $ setCabalFileHash hash pkg
206242
207243cabalFromFile :: Bool -> FilePath -> MaybeT IO Cabal.GenericPackageDescription
208244cabalFromFile failHard file =
209− -- readFile throws an error if it's used on binary files which contain sequences
245+ -- hGetContents throws an error if it's used on files which contain sequences
210246 -- that do not represent valid characters. To catch that exception, we need to
211− -- wrap the whole block in `catchIO`, because of lazy IO. The `case` will force
212− -- the reading of the file, so we will always catch the expression here.
247+ -- wrap the whole block in `catchIO`.
213248 MaybeT $ handleIO (\err -> Nothing <$ hPutStrLn stderr ("*** parsing cabal file: " ++ show err)) $ do
214− buf <- readFile file
215− let hash = printSHA256 (digestString (digestByName "sha256") buf)
216− case parseGenericPackageDescription buf of
217− ParseFailed perr -> if failHard
218− then fail ("cannot parse " ++ show file ++ ": " ++ show perr)
219− else return Nothing
220− ParseOk _ pkg -> return $ Just $ setCabalFileHash hash pkg
249+ buf <- BS.readFile file
250+ let hash = printSHA256 (digest (digestByName "sha256") buf)
251+ case runParseGenericPackageDescription file buf of
252+ Left msg | failHard -> liftIO $ do
253+ hPutStrLn stderr $ "*** cannot parse " ++ show file ++ ":"
254+ hPutStrLn stderr msg
255+ fail "*** Exiting."
256+ Left _ -> return Nothing
257+ Right pkg -> return $ Just $ setCabalFileHash hash pkg
258+
259+runParseGenericPackageDescription
260+ :: FilePath
261+ -> BS.ByteString
262+ -> Either String Cabal.GenericPackageDescription
263+runParseGenericPackageDescription fpath
264+ = first (unlines . fmap (showPError fpath) . snd)
265+ . snd . runParseResult
266+ . parseGenericPackageDescription
221267
222268setCabalFileHash :: String -> GenericPackageDescription -> GenericPackageDescription
223269setCabalFileHash sha256 gpd = gpd { packageDescription = (packageDescription gpd) {
test/Main.hs+93−23
@@ -1,52 +1,122 @@
1+{-# LANGUAGE OverloadedStrings #-}
2+
13module Main ( main ) where
24
3−import Distribution.Nixpkgs.Haskell.FromCabal
4−import Distribution.Nixpkgs.Haskell.Derivation
55import Distribution.Nixpkgs.Fetch
6+import Distribution.Nixpkgs.Haskell.Derivation
7+import Distribution.Nixpkgs.Haskell.FromCabal
8+import Distribution.Nixpkgs.Haskell.FromCabal.Flags
69
710import Control.Lens
11+import Control.Monad
12+import qualified Data.Set as Set
813import Distribution.Compiler
14+import Distribution.Package
915import Distribution.PackageDescription
10−import Distribution.PackageDescription.Parse
16+import Distribution.PackageDescription.Parsec
1117import Distribution.System
1218import Distribution.Verbosity
1319import Distribution.Version
1420import Language.Nix
21+import System.Directory
1522import System.FilePath
23+import System.Process
1624import Test.Tasty
1725import Test.Tasty.Golden
1826import Text.PrettyPrint.HughesPJClass
1927
2028main :: IO ()
2129main = do
22− -- TODO: run this test with all kinds of setLocaleEncoding values to ensure we don't
23− -- depend on the system environment: https://github.com/NixOS/cabal2nix/issues/333
24− testCases <- findByExtension [".cabal"] "test/golden-test-cases"
25− defaultMain $ testGroup "regression-tests" (map regressionTest testCases)
30+ -- TODO: Run this test with all kinds of setLocaleEncoding values to ensure we don't
31+ -- depend on the system environment: https://github.com/NixOS/cabal2nix/issues/333.
32+ --
33+ -- TODO: Run this test without $HOME defined to ensure that we don't need that variable.
34+ cabal2nix <- findExecutable "cabal2nix" >>= maybe (fail "cannot find 'cabal2nix' in $PATH") return
35+ testCases <- listDirectoryFilesBySuffix ".cabal" "test/golden-test-cases"
36+ defaultMain $ testGroup "regression-tests"
37+ [ testGroup "cabal2nix library" (map testLibrary testCases)
38+ , testGroup "cabal2nix executable" (map (testExecutable cabal2nix) testCases)
39+ ]
2640
27−regressionTest :: String -> TestTree
28−regressionTest cabalFile = do
41+testLibrary :: String -> TestTree
42+testLibrary cabalFile = do
2943 let nixFile = cabalFile `replaceExtension` "nix"
3044 goldenFile = nixFile `addExtension` "golden"
3145
3246 cabal2nix :: GenericPackageDescription -> Derivation
3347 cabal2nix gpd = fromGenericPackageDescription
34− (const True)
35− (\i -> Just (binding # (i, path # [i])))
36− (Platform X86_64 Linux)
37− (unknownCompilerInfo (CompilerId GHC (mkVersion [8,2])) NoAbiTag)
38− []
39− []
40− gpd
41− & src .~ DerivationSource
42− { derivKind = "url"
43− , derivUrl = "http://example.org/"
44− , derivRevision = ""
45− , derivHash = "abc"
46− }
48+ (const True)
49+ (\i -> Just (binding # (i, path # [ident # "pkgs", i])))
50+ (Platform X86_64 Linux)
51+ (unknownCompilerInfo (CompilerId GHC (mkVersion [8,2])) NoAbiTag)
52+ (configureCabalFlags (packageId gpd))
53+ []
54+ gpd
55+ & src .~ DerivationSource
56+ { derivKind = "url"
57+ , derivUrl = "mirror://hackage/foo.tar.gz"
58+ , derivRevision = ""
59+ , derivHash = "deadbeef"
60+ , derivSubmodule = Nothing
61+ }
62+ & extraFunctionArgs %~ Set.union (Set.singleton "inherit stdenv")
4763 goldenVsFileDiff
4864 nixFile
4965 (\ref new -> ["diff", "-u", ref, new])
5066 goldenFile
5167 nixFile
52− (readGenericPackageDescription silent cabalFile >>= writeFile nixFile . prettyShow . cabal2nix)
68+ (readGenericPackageDescription silent cabalFile >>= writeFileLn nixFile . prettyShow . cabal2nix)
69+
70+-- | TODO:
71+--
72+-- * Run cabal2nix in an empty environment. Currently, this fails because the
73+-- tool uses $HOME to write cache files for SHA256 hashes. To fix this, use
74+-- of the cache directory ought to be optional. Arguably, the whole notion
75+-- of caching those hashes is a bit silly in the presence of format 01
76+-- cabal-install tarballs which contain them already.
77+--
78+-- * If we cannot get along without $HOME, then we should at least set it to
79+-- some temporary location that is empty.
80+--
81+-- * Run this test with different kinds of encodings.
82+--
83+-- * Run tests with a different target OS, like Darwin. The packages "iconv",
84+-- "crypt-sha512", "gl" might be worthwhile for testing since their output
85+-- differs on Darwin.
86+
87+testExecutable :: FilePath -> FilePath -> TestTree
88+testExecutable exe cabalFile = do
89+ let nixFile = cabalFile `replaceExtension` "nix"
90+ goldenFile = nixFile `addExtension` "golden"
91+ goldenVsFileDiff
92+ nixFile
93+ (\ref new -> ["diff", "-u", ref, new])
94+ goldenFile
95+ nixFile
96+ (callCommand (unwords ["env LANG=en_US.UTF-8", exe, "--sha256=deadbeef", "--system=x86_64-linux", "--compiler=ghc-8.2", "--", cabalFile, ">"++nixFile]))
97+
98+-------------------------------------------------------------------------------
99+-- * Helper functions
100+-------------------------------------------------------------------------------
101+
102+-- | Find all *files* in the given directory that end with the given suffix.
103+-- This function does not recurse, nor does it include the special entries
104+-- @'.'@ or @'..'@ in the result.
105+--
106+-- "Test.Tasty.Golden" offers 'findByExtension', which does something similar
107+-- (and arguably more general) as those two functions, but unfortunately that
108+-- function recurses through the directory hierarchy and in the process needs
109+-- plenty of stack space. There might be a space leak in that code, I am not
110+-- sure. Anyhow, since our test suite is supposed to run with 1K stack space,
111+-- we prefer our own simpler code.
112+
113+listDirectoryFilesBySuffix :: String -> FilePath -> IO [FilePath]
114+listDirectoryFilesBySuffix suff dirPath = do
115+ entries <- listDirectory dirPath
116+ filterM doesFileExist [ dirPath </> e | e <- entries, takeExtension e == suff ]
117+
118+-- | A variant of 'writeFile' that appends a newline to the end of the buffer
119+-- before writing.
120+
121+writeFileLn :: FilePath -> String -> IO ()
122+writeFileLn p buf = writeFile p (buf ++ "\n")
test/golden-test-cases/ChasingBottoms.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, containers, fetchurl, mtl, QuickCheck
2−, random, syb
1+{ mkDerivation, array, base, containers, mtl, QuickCheck, random
2+, stdenv, syb
33}:
44mkDerivation {
55 pname = "ChasingBottoms";
66 version = "1.3.1.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers mtl QuickCheck random syb
1310 ];
@@ -16,4 +13,4 @@ mkDerivation {
1613 ];
1714 description = "For testing partial and infinite values";
1815 license = stdenv.lib.licenses.mit;
19−}
16+}
test/golden-test-cases/Clipboard.nix.golden+3−7
@@ -1,14 +1,10 @@
1−{ mkDerivation, base, directory, fetchurl, unix, utf8-string, X11
2−}:
1+{ mkDerivation, base, directory, stdenv, unix, utf8-string, X11 }:
32mkDerivation {
43 pname = "Clipboard";
54 version = "2.3.2.0";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base directory unix utf8-string X11 ];
117 homepage = "http://haskell.org/haskellwiki/Clipboard";
128 description = "System clipboard interface";
139 license = stdenv.lib.licenses.bsd3;
14−}
10+}
test/golden-test-cases/FenwickTree.nix.golden+3−6
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, fetchurl, QuickCheck, template-haskell }:
1+{ mkDerivation, base, QuickCheck, stdenv, template-haskell }:
22mkDerivation {
33 pname = "FenwickTree";
44 version = "0.1.2.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 enableSeparateDataOutput = true;
107 libraryHaskellDepends = [ base QuickCheck template-haskell ];
118 testHaskellDepends = [ base QuickCheck template-haskell ];
129 homepage = "https://github.com/mgajda/FenwickTree";
1310 description = "Data structure for fast query and update of cumulative sums";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/GPipe-GLFW.nix.golden+3−7
@@ -1,16 +1,12 @@
1−{ mkDerivation, async, base, containers, fetchurl, GLFW-b, GPipe
2−, stm
1+{ mkDerivation, async, base, containers, GLFW-b, GPipe, stdenv, stm
32}:
43mkDerivation {
54 pname = "GPipe-GLFW";
65 version = "1.4.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
6+ sha256 = "deadbeef";
117 enableSeparateDataOutput = true;
128 libraryHaskellDepends = [ async base containers GLFW-b GPipe stm ];
139 homepage = "https://github.com/plredmond/GPipe-GLFW";
1410 description = "GLFW OpenGL context creation for GPipe";
1511 license = stdenv.lib.licenses.mit;
16−}
12+}
test/golden-test-cases/GenericPretty.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, ghc-prim, pretty }:
1+{ mkDerivation, base, ghc-prim, pretty, stdenv }:
22mkDerivation {
33 pname = "GenericPretty";
44 version = "1.2.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ghc-prim pretty ];
107 homepage = "https://github.com/RazvanRanca/GenericPretty";
118 description = "A generic, derivable, haskell pretty printer";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/HPDF.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, array, base, base64-bytestring, binary, bytestring
2−, containers, errors, fetchurl, HTF, mtl, random, vector, zlib
2+, containers, errors, HTF, mtl, random, stdenv, vector, zlib
33}:
44mkDerivation {
55 pname = "HPDF";
66 version = "1.4.10";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 array base base64-bytestring binary bytestring containers errors
1310 mtl random vector zlib
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://www.alpheccar.org";
1714 description = "Generation of PDF documents";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/HTF.nix.golden+5−8
@@ -1,17 +1,14 @@
11{ mkDerivation, aeson, aeson-pretty, array, base, base64-bytestring
2−, bytestring, containers, cpphs, Diff, directory, fetchurl
3−, filepath, haskell-src, HUnit, lifted-base, monad-control, mtl
4−, old-time, pretty, process, QuickCheck, random, regex-compat
2+, bytestring, containers, cpphs, Diff, directory, filepath
3+, haskell-src, HUnit, lifted-base, monad-control, mtl, old-time
4+, pretty, process, QuickCheck, random, regex-compat, stdenv
55, template-haskell, temporary, text, time, unix
66, unordered-containers, vector, xmlgen
77}:
88mkDerivation {
99 pname = "HTF";
1010 version = "0.13.2.2";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
11+ sha256 = "deadbeef";
1512 isLibrary = true;
1613 isExecutable = true;
1714 libraryHaskellDepends = [
@@ -31,4 +28,4 @@ mkDerivation {
3128 homepage = "https://github.com/skogsbaer/HTF/";
3229 description = "The Haskell Test Framework";
3330 license = "LGPL";
34−}
31+}
test/golden-test-cases/HTTP.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, array, base, bytestring, case-insensitive, conduit
2−, conduit-extra, deepseq, fetchurl, http-types, httpd-shed, HUnit
3−, mtl, network, network-uri, parsec, pureMD5, split, test-framework
4−, test-framework-hunit, time, wai, warp
2+, conduit-extra, deepseq, http-types, httpd-shed, HUnit, mtl
3+, network, network-uri, parsec, pureMD5, split, stdenv
4+, test-framework, test-framework-hunit, time, wai, warp
55}:
66mkDerivation {
77 pname = "HTTP";
88 version = "4000.3.9";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 array base bytestring mtl network network-uri parsec time
1512 ];
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/haskell/HTTP";
2219 description = "A library for client-side HTTP";
2320 license = stdenv.lib.licenses.bsd3;
24−}
21+}
test/golden-test-cases/Hclip.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, mtl, process, strict }:
1+{ mkDerivation, base, mtl, process, stdenv, strict }:
22mkDerivation {
33 pname = "Hclip";
44 version = "3.0.0.4";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base mtl process strict ];
107 homepage = "https://github.com/jetho/Hclip";
118 description = "A small cross-platform library for reading and modifying the system clipboard";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/MissingH.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, array, base, containers, directory
2−, errorcall-eq-instance, fetchurl, filepath, hslogger, HUnit, mtl
3−, network, old-locale, old-time, parsec, process, QuickCheck
4−, random, regex-compat, testpack, time, unix
2+, errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
3+, old-locale, old-time, parsec, process, QuickCheck, random
4+, regex-compat, stdenv, testpack, time, unix
55}:
66mkDerivation {
77 pname = "MissingH";
88 version = "1.4.0.1";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 array base containers directory filepath hslogger HUnit mtl network
1512 old-locale old-time parsec process random regex-compat time unix
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "http://software.complete.org/missingh";
2320 description = "Large utility library";
2421 license = stdenv.lib.licenses.bsd3;
25−}
22+}
test/golden-test-cases/ObjectName.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, transformers }:
1+{ mkDerivation, base, stdenv, transformers }:
22mkDerivation {
33 pname = "ObjectName";
44 version = "1.1.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base transformers ];
107 homepage = "https://github.com/svenpanne/ObjectName";
118 description = "Explicitly handled object names";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/Only.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, deepseq, fetchurl }:
1+{ mkDerivation, base, deepseq, stdenv }:
22mkDerivation {
33 pname = "Only";
44 version = "0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base deepseq ];
107 description = "The 1-tuple type or single-value \"collection\"";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/QuasiText.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, attoparsec, base, fetchurl, haskell-src-meta
1+{ mkDerivation, attoparsec, base, haskell-src-meta, stdenv
22, template-haskell, text, th-lift-instances
33}:
44mkDerivation {
55 pname = "QuasiText";
66 version = "0.1.2.6";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 attoparsec base haskell-src-meta template-haskell text
1310 th-lift-instances
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/mikeplus64/QuasiText";
1613 description = "A QuasiQuoter for Text";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/QuickCheck.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, deepseq, fetchurl, random
1+{ mkDerivation, base, containers, deepseq, random, stdenv
22, template-haskell, tf-random, transformers
33}:
44mkDerivation {
55 pname = "QuickCheck";
66 version = "2.10.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers deepseq random template-haskell tf-random
1310 transformers
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/nick8325/quickcheck";
1714 description = "Automatic testing of Haskell programs";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/ReadArgs.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, fetchurl, hspec, system-filepath, text }:
1+{ mkDerivation, base, hspec, stdenv, system-filepath, text }:
22mkDerivation {
33 pname = "ReadArgs";
44 version = "1.2.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base system-filepath text ];
@@ -14,4 +11,4 @@ mkDerivation {
1411 homepage = "http://github.com/rampion/ReadArgs";
1512 description = "Simple command line argument parsing";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/SHA.nix.golden+4−8
@@ -1,21 +1,17 @@
1−{ mkDerivation, array, base, binary, bytestring, directory
2−, fetchurl, QuickCheck, test-framework, test-framework-quickcheck2
1+{ mkDerivation, array, base, binary, bytestring, QuickCheck, stdenv
2+, test-framework, test-framework-quickcheck2
33}:
44mkDerivation {
55 pname = "SHA";
66 version = "1.6.4.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [ array base binary bytestring ];
14− executableHaskellDepends = [ base bytestring directory ];
1511 testHaskellDepends = [
1612 array base binary bytestring QuickCheck test-framework
1713 test-framework-quickcheck2
1814 ];
1915 description = "Implementations of the SHA suite of message digest functions";
2016 license = stdenv.lib.licenses.bsd3;
21−}
17+}
test/golden-test-cases/Strafunski-StrategyLib.nix.golden+3−7
@@ -1,13 +1,9 @@
1−{ mkDerivation, base, directory, fetchurl, mtl, syb, transformers
2−}:
1+{ mkDerivation, base, directory, mtl, stdenv, syb, transformers }:
32mkDerivation {
43 pname = "Strafunski-StrategyLib";
54 version = "5.0.0.10";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base directory mtl syb transformers ];
117 description = "Library for strategic programming";
128 license = stdenv.lib.licenses.bsd3;
13−}
9+}
test/golden-test-cases/accelerate-fftw.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, accelerate, accelerate-io, base, carray, fetchurl
2−, fft, storable-complex
1+{ mkDerivation, accelerate, accelerate-io, base, carray, fft
2+, stdenv, storable-complex
33}:
44mkDerivation {
55 pname = "accelerate-fftw";
66 version = "1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 accelerate accelerate-io base carray fft storable-complex
1310 ];
1411 homepage = "http://hub.darcs.net/thielema/accelerate-fftw/";
1512 description = "Accelerate frontend to the FFTW library (Fourier transform)";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/accelerate.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, ansi-wl-pprint, base, base-orphans, containers
2−, deepseq, directory, exceptions, fclabels, fetchurl, filepath
3−, ghc-prim, hashable, hashtables, mtl, template-haskell, time
2+, deepseq, directory, exceptions, fclabels, filepath, ghc-prim
3+, hashable, hashtables, mtl, stdenv, template-haskell, time
44, transformers, unique, unix, unordered-containers
55}:
66mkDerivation {
77 pname = "accelerate";
88 version = "1.1.1.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 ansi-wl-pprint base base-orphans containers deepseq directory
1512 exceptions fclabels filepath ghc-prim hashable hashtables mtl
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "https://github.com/AccelerateHS/accelerate/";
1916 description = "An embedded language for accelerated array processing";
2017 license = stdenv.lib.licenses.bsd3;
21−}
18+}
test/golden-test-cases/active.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, lens, linear, QuickCheck
2−, semigroupoids, semigroups, vector
1+{ mkDerivation, base, lens, linear, QuickCheck, semigroupoids
2+, semigroups, stdenv, vector
33}:
44mkDerivation {
55 pname = "active";
66 version = "0.2.0.13";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base lens linear semigroupoids semigroups vector
1310 ];
@@ -16,4 +13,4 @@ mkDerivation {
1613 ];
1714 description = "Abstractions for animation";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/adjunctions.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, array, base, comonad, containers, contravariant
2−, distributive, fetchurl, free, mtl, profunctors, semigroupoids
3−, semigroups, tagged, transformers, transformers-compat, void
2+, distributive, free, mtl, profunctors, semigroupoids, semigroups
3+, stdenv, tagged, transformers, transformers-compat, void
44}:
55mkDerivation {
66 pname = "adjunctions";
77 version = "4.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 array base comonad containers contravariant distributive free mtl
1411 profunctors semigroupoids semigroups tagged transformers
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "http://github.com/ekmett/adjunctions/";
1815 description = "Adjunctions and representable functors";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/aeson-diff.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, base, bytestring, directory, doctest
2−, edit-distance-vector, fetchurl, filepath, Glob, hashable, hlint
3−, mtl, optparse-applicative, QuickCheck, quickcheck-instances
4−, scientific, text, unordered-containers, vector
2+, edit-distance-vector, filepath, Glob, hashable, hlint, mtl
3+, optparse-applicative, QuickCheck, quickcheck-instances
4+, scientific, stdenv, text, unordered-containers, vector
55}:
66mkDerivation {
77 pname = "aeson-diff";
88 version = "1.1.0.4";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -26,4 +23,4 @@ mkDerivation {
2623 homepage = "https://github.com/thsutton/aeson-diff";
2724 description = "Extract and apply patches to JSON documents";
2825 license = stdenv.lib.licenses.bsd3;
29−}
26+}
test/golden-test-cases/aeson-pretty.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
2−, cmdargs, fetchurl, scientific, text, unordered-containers, vector
2+, cmdargs, scientific, stdenv, text, unordered-containers, vector
33}:
44mkDerivation {
55 pname = "aeson-pretty";
66 version = "0.8.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://github.com/informatikr/aeson-pretty";
2118 description = "JSON pretty-printing library and command-line tool";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/algebraic-graphs.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, array, base, containers, criterion, extra, fetchurl
2−, QuickCheck
1+{ mkDerivation, array, base, containers, criterion, extra
2+, QuickCheck, stdenv
33}:
44mkDerivation {
55 pname = "algebraic-graphs";
66 version = "0.0.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ array base containers ];
129 testHaskellDepends = [ base containers extra QuickCheck ];
1310 benchmarkHaskellDepends = [ base containers criterion ];
1411 homepage = "https://github.com/snowleopard/alga";
1512 description = "A library for algebraic graph construction and transformation";
1613 license = stdenv.lib.licenses.mit;
17−}
14+}
test/golden-test-cases/amazonka-cloudtrail.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-cloudtrail";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon CloudTrail SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-cloudwatch-logs.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-cloudwatch-logs";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon CloudWatch Logs SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-codedeploy.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-codedeploy";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon CodeDeploy SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-cognito-idp.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-cognito-idp";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon Cognito Identity Provider SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-ecs.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-ecs";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon EC2 Container Service SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-kms.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-kms";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon Key Management Service SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-lightsail.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-lightsail";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon Lightsail SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-route53-domains.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-route53-domains";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon Route 53 Domains SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/amazonka-waf.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, amazonka-core, amazonka-test, base, bytestring
2−, fetchurl, tasty, tasty-hunit, text, time, unordered-containers
2+, stdenv, tasty, tasty-hunit, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "amazonka-waf";
66 version = "1.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ amazonka-core base ];
129 testHaskellDepends = [
1310 amazonka-core amazonka-test base bytestring tasty tasty-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brendanhay/amazonka";
1714 description = "Amazon WAF SDK";
1815 license = stdenv.lib.licenses.mpl20;
19−}
16+}
test/golden-test-cases/api-field-json-th.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, aeson, base, fetchurl, HUnit, lens, split
1+{ mkDerivation, aeson, base, HUnit, lens, split, stdenv
22, template-haskell, text
33}:
44mkDerivation {
55 pname = "api-field-json-th";
66 version = "0.1.0.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base lens split template-haskell text
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/nakaji-dayo/api-field-json-th";
1613 description = "option of aeson's deriveJSON";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/app-settings.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, directory, fetchurl, hspec, HUnit
2−, mtl, parsec, text
1+{ mkDerivation, base, containers, directory, hspec, HUnit, mtl
2+, parsec, stdenv, text
33}:
44mkDerivation {
55 pname = "app-settings";
66 version = "0.2.0.11";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers directory mtl parsec text
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/emmanueltouzery/app-settings";
1815 description = "A library to manage application settings (INI file-like)";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/apply-refact.nix.golden+5−8
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, containers, directory, fetchurl, filemanip
2−, filepath, ghc, ghc-exactprint, mtl, optparse-applicative, process
3−, refact, silently, syb, tasty, tasty-expected-failure
1+{ mkDerivation, base, containers, directory, filemanip, filepath
2+, ghc, ghc-exactprint, mtl, optparse-applicative, process, refact
3+, silently, stdenv, syb, tasty, tasty-expected-failure
44, tasty-golden, temporary, transformers, unix-compat
55}:
66mkDerivation {
77 pname = "apply-refact";
88 version = "0.4.1.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -29,4 +26,4 @@ mkDerivation {
2926 ];
3027 description = "Perform refactorings specified by the refact library";
3128 license = stdenv.lib.licenses.bsd3;
32−}
29+}
test/golden-test-cases/async.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, HUnit, stm, test-framework
1+{ mkDerivation, base, HUnit, stdenv, stm, test-framework
22, test-framework-hunit
33}:
44mkDerivation {
55 pname = "async";
66 version = "2.1.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base stm ];
129 testHaskellDepends = [
1310 base HUnit test-framework test-framework-hunit
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/simonmar/async";
1613 description = "Run IO operations asynchronously and wait for their results";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/attoparsec-expr.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, attoparsec, base, fetchurl }:
1+{ mkDerivation, attoparsec, base, stdenv }:
22mkDerivation {
33 pname = "attoparsec-expr";
44 version = "0.1.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ attoparsec base ];
107 description = "Port of parsec's expression parser to attoparsec";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/attoparsec-time.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, attoparsec, base, base-prelude, bytestring, Cabal
2−, cabal-doctest, directory, doctest, fetchurl, filepath, scientific
2+, cabal-doctest, directory, doctest, filepath, scientific, stdenv
33, text, time
44}:
55mkDerivation {
66 pname = "attoparsec-time";
77 version = "1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 setupHaskellDepends = [ base Cabal cabal-doctest ];
1310 libraryHaskellDepends = [
1411 attoparsec base base-prelude bytestring scientific text time
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/nikita-volkov/attoparsec-time";
2017 description = "Attoparsec parsers of time";
2118 license = stdenv.lib.licenses.mit;
22−}
19+}
test/golden-test-cases/avers-server.nix.golden+5−8
@@ -1,16 +1,13 @@
11{ mkDerivation, aeson, avers, avers-api, base, base64-bytestring
22, bytestring, bytestring-conversion, containers, cookie, cryptonite
3−, fetchurl, http-types, memory, mtl, resource-pool
4−, rethinkdb-client-driver, servant, servant-server, stm, text, time
5−, transformers, wai, wai-websockets, websockets
3+, http-types, memory, mtl, resource-pool, rethinkdb-client-driver
4+, servant, servant-server, stdenv, stm, text, time, transformers
5+, wai, wai-websockets, websockets
66}:
77mkDerivation {
88 pname = "avers-server";
99 version = "0.1.0";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 aeson avers avers-api base base64-bytestring bytestring
1613 bytestring-conversion containers cookie cryptonite http-types
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "http://github.com/wereHamster/avers-server";
2219 description = "Server implementation of the Avers API";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/aws.nix.golden+6−9
@@ -2,20 +2,17 @@
22, base64-bytestring, blaze-builder, byteable, bytestring
33, case-insensitive, cereal, conduit, conduit-combinators
44, conduit-extra, containers, cryptonite, data-default, directory
5−, errors, fetchurl, filepath, http-client, http-client-tls
6−, http-conduit, http-types, lifted-base, memory, monad-control, mtl
7−, network, old-locale, QuickCheck, quickcheck-instances, resourcet
8−, safe, scientific, tagged, tasty, tasty-hunit, tasty-quickcheck
5+, errors, filepath, http-client, http-client-tls, http-conduit
6+, http-types, lifted-base, memory, monad-control, mtl, network
7+, old-locale, QuickCheck, quickcheck-instances, resourcet, safe
8+, scientific, stdenv, tagged, tasty, tasty-hunit, tasty-quickcheck
99, text, time, transformers, transformers-base, unordered-containers
1010, utf8-string, vector, xml-conduit
1111}:
1212mkDerivation {
1313 pname = "aws";
1414 version = "0.18";
15− src = fetchurl {
16− url = "http://example.org/";
17− sha256 = "abc";
18− };
15+ sha256 = "deadbeef";
1916 isLibrary = true;
2017 isExecutable = true;
2118 libraryHaskellDepends = [
@@ -35,4 +32,4 @@ mkDerivation {
3532 homepage = "http://github.com/aristidb/aws";
3633 description = "Amazon Web Services (AWS) for Haskell";
3734 license = stdenv.lib.licenses.bsd3;
38−}
35+}
test/golden-test-cases/bbdb.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, hspec, parsec }:
1+{ mkDerivation, base, hspec, parsec, stdenv }:
22mkDerivation {
33 pname = "bbdb";
44 version = "0.8";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base parsec ];
107 testHaskellDepends = [ base hspec parsec ];
118 homepage = "https://github.com/henrylaxen/bbdb";
129 description = "Ability to read, write, and modify BBDB files";
1310 license = stdenv.lib.licenses.gpl3;
14−}
11+}
test/golden-test-cases/benchpress.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, bytestring, fetchurl, mtl, time }:
1+{ mkDerivation, base, bytestring, mtl, stdenv, time }:
22mkDerivation {
33 pname = "benchpress";
44 version = "0.2.2.10";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base mtl time ];
@@ -13,4 +10,4 @@ mkDerivation {
1310 homepage = "https://github.com/WillSewell/benchpress";
1411 description = "Micro-benchmarking with detailed statistics";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/binary-bits.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, binary, bytestring, fetchurl, QuickCheck
2−, random, test-framework, test-framework-quickcheck2
1+{ mkDerivation, base, binary, bytestring, QuickCheck, random
2+, stdenv, test-framework, test-framework-quickcheck2
33}:
44mkDerivation {
55 pname = "binary-bits";
66 version = "0.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base binary bytestring ];
129 testHaskellDepends = [
1310 base binary bytestring QuickCheck random test-framework
@@ -15,4 +12,4 @@ mkDerivation {
1512 ];
1613 description = "Bit parsing/writing on top of binary";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/binary-tagged.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
22, binary, binary-orphans, bytestring, containers, criterion
3−, deepseq, fetchurl, generics-sop, hashable, nats
4−, quickcheck-instances, scientific, semigroups, SHA, tagged, tasty
3+, deepseq, generics-sop, hashable, nats, quickcheck-instances
4+, scientific, semigroups, SHA, stdenv, tagged, tasty
55, tasty-quickcheck, text, time, unordered-containers, vector
66}:
77mkDerivation {
88 pname = "binary-tagged";
99 version = "0.1.4.2";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 aeson array base base16-bytestring binary bytestring containers
1613 generics-sop hashable nats scientific semigroups SHA tagged text
@@ -30,4 +27,4 @@ mkDerivation {
3027 homepage = "https://github.com/phadej/binary-tagged#readme";
3128 description = "Tagged binary serialisation";
3229 license = stdenv.lib.licenses.bsd3;
33−}
30+}
test/golden-test-cases/bindings-uname.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "bindings-uname";
44 version = "0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 description = "Low-level binding to POSIX uname(3)";
118 license = stdenv.lib.licenses.publicDomain;
12−}
9+}
test/golden-test-cases/bioalign.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, biocore, bytestring, fetchurl }:
1+{ mkDerivation, base, biocore, bytestring, stdenv }:
22mkDerivation {
33 pname = "bioalign";
44 version = "0.0.5";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base biocore bytestring ];
107 homepage = "https://patch-tag.com/r/dfornika/biophd/home";
118 description = "Data structures and helper functions for calculating alignments";
129 license = "GPL";
13−}
10+}
test/golden-test-cases/bits.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, bytes, Cabal, cabal-doctest, doctest
2−, fetchurl, mtl, transformers
1+{ mkDerivation, base, bytes, Cabal, cabal-doctest, doctest, mtl
2+, stdenv, transformers
33}:
44mkDerivation {
55 pname = "bits";
66 version = "0.5.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 setupHaskellDepends = [ base Cabal cabal-doctest ];
129 libraryHaskellDepends = [ base bytes mtl transformers ];
1310 testHaskellDepends = [ base doctest ];
1411 homepage = "http://github.com/ekmett/bits";
1512 description = "Various bit twiddling and bitwise serialization primitives";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/blank-canvas.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, aeson, base, base-compat, base64-bytestring
22, bytestring, colour, containers, data-default-class, directory
3−, fetchurl, http-types, kansas-comet, mime-types, process, scotty
4−, shake, stm, text, text-show, time, transformers, unix, vector
3+, http-types, kansas-comet, mime-types, process, scotty, shake
4+, stdenv, stm, text, text-show, time, transformers, unix, vector
55, wai, wai-extra, warp
66}:
77mkDerivation {
88 pname = "blank-canvas";
99 version = "0.6.1";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 enableSeparateDataOutput = true;
1512 libraryHaskellDepends = [
1613 aeson base base-compat base64-bytestring bytestring colour
@@ -23,4 +20,4 @@ mkDerivation {
2320 homepage = "https://github.com/ku-fpg/blank-canvas/wiki";
2421 description = "HTML5 Canvas Graphics Library";
2522 license = stdenv.lib.licenses.bsd3;
26−}
23+}
test/golden-test-cases/blaze-html.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, blaze-builder, blaze-markup, bytestring
2−, containers, fetchurl, HUnit, QuickCheck, test-framework
2+, containers, HUnit, QuickCheck, stdenv, test-framework
33, test-framework-hunit, test-framework-quickcheck2, text
44}:
55mkDerivation {
66 pname = "blaze-html";
77 version = "0.9.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base blaze-builder blaze-markup bytestring text
1411 ];
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://jaspervdj.be/blaze";
2118 description = "A blazingly fast HTML combinator library for Haskell";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/blaze-markup.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, blaze-builder, bytestring, containers
2−, fetchurl, HUnit, QuickCheck, test-framework, test-framework-hunit
1+{ mkDerivation, base, blaze-builder, bytestring, containers, HUnit
2+, QuickCheck, stdenv, test-framework, test-framework-hunit
33, test-framework-quickcheck2, text
44}:
55mkDerivation {
66 pname = "blaze-markup";
77 version = "0.8.0.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [ base blaze-builder bytestring text ];
1310 testHaskellDepends = [
1411 base blaze-builder bytestring containers HUnit QuickCheck
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "http://jaspervdj.be/blaze";
1815 description = "A blazingly fast markup combinator library for Haskell";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/blaze-svg.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, blaze-markup, fetchurl, mtl }:
1+{ mkDerivation, base, blaze-markup, mtl, stdenv }:
22mkDerivation {
33 pname = "blaze-svg";
44 version = "0.3.6.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base blaze-markup mtl ];
107 homepage = "https://github.com/deepakjois/blaze-svg";
118 description = "SVG combinator library";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/blosum.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, fasta, fetchurl, lens
2−, optparse-applicative, pipes, pipes-text, split, text, text-show
1+{ mkDerivation, base, containers, fasta, lens, optparse-applicative
2+, pipes, pipes-text, split, stdenv, text, text-show
33}:
44mkDerivation {
55 pname = "blosum";
66 version = "0.1.1.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://github.com/GregorySchwartz/blosum#readme";
2118 description = "BLOSUM generator";
2219 license = stdenv.lib.licenses.gpl2;
23−}
20+}
test/golden-test-cases/boomerang.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl, mtl, template-haskell, text }:
1+{ mkDerivation, base, mtl, stdenv, template-haskell, text }:
22mkDerivation {
33 pname = "boomerang";
44 version = "1.4.5.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base mtl template-haskell text ];
107 description = "Library for invertible parsing and printing";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/boxes.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, QuickCheck, split }:
1+{ mkDerivation, base, QuickCheck, split, stdenv }:
22mkDerivation {
33 pname = "boxes";
44 version = "0.1.4";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base split ];
107 testHaskellDepends = [ base QuickCheck split ];
118 description = "2D text pretty-printing library";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/brittany.nix.golden+5−8
@@ -1,17 +1,14 @@
11{ mkDerivation, aeson, base, butcher, bytestring, cmdargs
22, containers, czipwith, data-tree-print, deepseq, directory, extra
3−, fetchurl, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
4−, hspec, monad-memo, mtl, multistate, neat-interpolation, parsec
5−, pretty, safe, semigroups, strict, syb, text, transformers
3+, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths, hspec
4+, monad-memo, mtl, multistate, neat-interpolation, parsec, pretty
5+, safe, semigroups, stdenv, strict, syb, text, transformers
66, uniplate, unsafe, yaml
77}:
88mkDerivation {
99 pname = "brittany";
1010 version = "0.9.0.0";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
11+ sha256 = "deadbeef";
1512 isLibrary = true;
1613 isExecutable = true;
1714 libraryHaskellDepends = [
@@ -38,4 +35,4 @@ mkDerivation {
3835 homepage = "https://github.com/lspitzner/brittany/";
3936 description = "Haskell source code formatter";
4037 license = stdenv.lib.licenses.agpl3;
41−}
38+}
test/golden-test-cases/broadcast-chan.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "broadcast-chan";
44 version = "0.1.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/merijn/broadcast-chan";
118 description = "Broadcast channel type that avoids 0 reader space leaks";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/butcher.nix.golden+3−10
@@ -1,23 +1,16 @@
11{ mkDerivation, base, bifunctors, containers, deque, either, extra
2−, fetchurl, free, microlens, microlens-th, mtl, multistate, pretty
2+, free, microlens, microlens-th, mtl, multistate, pretty, stdenv
33, transformers, unsafe, void
44}:
55mkDerivation {
66 pname = "butcher";
77 version = "1.2.1.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base bifunctors containers deque either extra free microlens
1411 microlens-th mtl multistate pretty transformers unsafe void
1512 ];
16− testHaskellDepends = [
17− base containers deque either extra free microlens microlens-th mtl
18− multistate pretty transformers unsafe
19− ];
2013 homepage = "https://github.com/lspitzner/butcher/";
2114 description = "Chops a command or program invocation into digestable pieces";
2215 license = stdenv.lib.licenses.bsd3;
23−}
16+}
test/golden-test-cases/bzlib.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, bzip2, fetchurl }:
1+{ mkDerivation, base, bytestring, bzip2, stdenv }:
22mkDerivation {
33 pname = "bzlib";
44 version = "0.5.0.5";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring ];
107 librarySystemDepends = [ bzip2 ];
118 description = "Compression and decompression in the bzip2 format";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/case-insensitive.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, criterion, deepseq, fetchurl
2−, hashable, HUnit, test-framework, test-framework-hunit, text
1+{ mkDerivation, base, bytestring, criterion, deepseq, hashable
2+, HUnit, stdenv, test-framework, test-framework-hunit, text
33}:
44mkDerivation {
55 pname = "case-insensitive";
66 version = "1.2.0.10";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base bytestring deepseq hashable text ];
129 testHaskellDepends = [
1310 base bytestring HUnit test-framework test-framework-hunit text
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/basvandijk/case-insensitive";
1714 description = "Case insensitive string comparison";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/cassava-conduit.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, array, base, bifunctors, bytestring, cassava
2−, conduit, conduit-extra, containers, criterion, fetchurl, mtl
3−, QuickCheck, text
2+, conduit, conduit-extra, containers, criterion, mtl, QuickCheck
3+, stdenv, text
44}:
55mkDerivation {
66 pname = "cassava-conduit";
77 version = "0.4.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 array base bifunctors bytestring cassava conduit conduit-extra
1411 containers mtl text
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/domdere/cassava-conduit";
2118 description = "Conduit interface for cassava package";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/cassette.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "cassette";
44 version = "0.1.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 description = "A combinator library for simultaneously defining parsers and pretty printers";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/cereal-text.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, cereal, fetchurl, text }:
1+{ mkDerivation, base, cereal, stdenv, text }:
22mkDerivation {
33 pname = "cereal-text";
44 version = "0.1.0.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base cereal text ];
107 homepage = "https://github.com/ulikoehler/cereal-text";
118 description = "Data.Text instances for the cereal serialization library";
129 license = stdenv.lib.licenses.asl20;
13−}
10+}
test/golden-test-cases/cheapskate.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, blaze-html, bytestring, containers
2−, data-default, deepseq, fetchurl, mtl, syb, text, uniplate
2+, data-default, deepseq, mtl, stdenv, syb, text, uniplate
33, xss-sanitize
44}:
55mkDerivation {
66 pname = "cheapskate";
77 version = "0.1.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "http://github.com/jgm/cheapskate";
2017 description = "Experimental markdown processor";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/chell.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, ansi-terminal, base, bytestring, fetchurl, options
2−, patience, random, template-haskell, text, transformers
1+{ mkDerivation, ansi-terminal, base, bytestring, options, patience
2+, random, stdenv, template-haskell, text, transformers
33}:
44mkDerivation {
55 pname = "chell";
66 version = "0.4.0.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 ansi-terminal base bytestring options patience random
1310 template-haskell text transformers
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://john-millikin.com/software/chell/";
1613 description = "A simple and intuitive library for automated testing";
1714 license = stdenv.lib.licenses.mit;
18−}
15+}
test/golden-test-cases/clumpiness.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, fetchurl, tree-fun }:
1+{ mkDerivation, base, containers, stdenv, tree-fun }:
22mkDerivation {
33 pname = "clumpiness";
44 version = "0.17.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers tree-fun ];
107 description = "Calculate the clumpiness of leaf properties in a tree";
118 license = stdenv.lib.licenses.gpl3;
12−}
9+}
test/golden-test-cases/code-page.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "code-page";
44 version = "0.1.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 testHaskellDepends = [ base ];
118 homepage = "https://github.com/RyanGlScott/code-page";
129 description = "Windows code page library for Haskell";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/colorize-haskell.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, ansi-terminal, base, fetchurl, haskell-lexer }:
1+{ mkDerivation, ansi-terminal, base, haskell-lexer, stdenv }:
22mkDerivation {
33 pname = "colorize-haskell";
44 version = "1.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ ansi-terminal base haskell-lexer ];
@@ -13,4 +10,4 @@ mkDerivation {
1310 homepage = "http://github.com/yav/colorize-haskell";
1411 description = "Highligt Haskell source";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/countable.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, silently, tasty
1+{ mkDerivation, base, bytestring, silently, stdenv, tasty
22, tasty-golden, tasty-hunit
33}:
44mkDerivation {
55 pname = "countable";
66 version = "1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base ];
129 testHaskellDepends = [
1310 base bytestring silently tasty tasty-golden tasty-hunit
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/AshleyYakeley/countable";
1613 description = "Countable, Searchable, Finite, Empty classes";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/cpu.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "cpu";
44 version = "0.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 enableSeparateDataOutput = true;
@@ -13,4 +10,4 @@ mkDerivation {
1310 homepage = "http://github.com/vincenthz/hs-cpu";
1411 description = "Cpu information and properties helpers";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/criterion.nix.golden+4−7
@@ -1,18 +1,15 @@
11{ mkDerivation, aeson, ansi-wl-pprint, base, base-compat, binary
22, bytestring, cassava, code-page, containers, deepseq, directory
3−, exceptions, fetchurl, filepath, Glob, HUnit, js-flot, js-jquery
3+, exceptions, filepath, Glob, HUnit, js-flot, js-jquery
44, microstache, mtl, mwc-random, optparse-applicative, parsec
5−, QuickCheck, semigroups, statistics, tasty, tasty-hunit
5+, QuickCheck, semigroups, statistics, stdenv, tasty, tasty-hunit
66, tasty-quickcheck, text, time, transformers, transformers-compat
77, vector, vector-algorithms
88}:
99mkDerivation {
1010 pname = "criterion";
1111 version = "1.2.6.0";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 isLibrary = true;
1714 isExecutable = true;
1815 enableSeparateDataOutput = true;
@@ -31,4 +28,4 @@ mkDerivation {
3128 homepage = "http://www.serpentine.com/criterion";
3229 description = "Robust, reliable performance measurement and analysis";
3330 license = stdenv.lib.licenses.bsd3;
34−}
31+}
test/golden-test-cases/crypt-sha512.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, attoparsec, base, bytestring, cryptohash-sha512
2−, fetchurl, quickcheck-instances, tasty, tasty-hunit
2+, quickcheck-instances, stdenv, tasty, tasty-hunit
33, tasty-quickcheck
44}:
55mkDerivation {
66 pname = "crypt-sha512";
77 version = "0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 attoparsec base bytestring cryptohash-sha512
1411 ];
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/phadej/crypt-sha512";
2017 description = "Pure Haskell implelementation for GNU SHA512 crypt algorithm";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/crypto-random-api.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, entropy, fetchurl }:
1+{ mkDerivation, base, bytestring, entropy, stdenv }:
22mkDerivation {
33 pname = "crypto-random-api";
44 version = "0.2.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring entropy ];
107 homepage = "http://github.com/vincenthz/hs-crypto-random-api";
118 description = "Simple random generators API for cryptography related code";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/csv.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl, filepath, parsec }:
1+{ mkDerivation, base, filepath, parsec, stdenv }:
22mkDerivation {
33 pname = "csv";
44 version = "0.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base filepath parsec ];
107 description = "CSV loader and dumper";
118 license = stdenv.lib.licenses.mit;
12−}
9+}
test/golden-test-cases/data-accessor.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, containers, fetchurl, transformers }:
1+{ mkDerivation, array, base, containers, stdenv, transformers }:
22mkDerivation {
33 pname = "data-accessor";
44 version = "0.2.2.7";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ array base containers transformers ];
107 homepage = "http://www.haskell.org/haskellwiki/Record_access";
118 description = "Utilities for accessing and manipulating fields of records";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/data-default-instances-containers.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, data-default-class, fetchurl }:
1+{ mkDerivation, base, containers, data-default-class, stdenv }:
22mkDerivation {
33 pname = "data-default-instances-containers";
44 version = "0.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers data-default-class ];
107 description = "Default instances for types in containers";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/data-endian.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "data-endian";
44 version = "0.1.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/mvv/data-endian";
118 description = "Endian-sensitive data";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/data-msgpack.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, base, binary, bytestring, containers, criterion
2−, data-binary-ieee754, deepseq, fetchurl, groom, hashable, hspec
3−, QuickCheck, text, unordered-containers, vector, void
2+, data-binary-ieee754, deepseq, groom, hashable, hspec, QuickCheck
3+, stdenv, text, unordered-containers, vector, void
44}:
55mkDerivation {
66 pname = "data-msgpack";
77 version = "0.0.10";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
@@ -26,4 +23,4 @@ mkDerivation {
2623 homepage = "http://msgpack.org/";
2724 description = "A Haskell implementation of MessagePack";
2825 license = stdenv.lib.licenses.bsd3;
29−}
26+}
test/golden-test-cases/data-serializer.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, base, binary, bytestring, cereal, data-endian
2−, fetchurl, parsers, semigroups, split, tasty, tasty-quickcheck
2+, parsers, semigroups, split, stdenv, tasty, tasty-quickcheck
33}:
44mkDerivation {
55 pname = "data-serializer";
66 version = "0.3.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base binary bytestring cereal data-endian parsers semigroups split
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/mvv/data-serializer";
1815 description = "Common API for serialization libraries";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/deque.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "deque";
44 version = "0.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/nikita-volkov/deque";
118 description = "Double-ended queue";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/dhall-bash.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, bytestring, containers, dhall, fetchurl
2−, neat-interpolation, optparse-generic, shell-escape, text
1+{ mkDerivation, base, bytestring, containers, dhall
2+, neat-interpolation, optparse-generic, shell-escape, stdenv, text
33, text-format, trifecta, vector
44}:
55mkDerivation {
66 pname = "dhall-bash";
77 version = "1.0.6";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
@@ -20,4 +17,4 @@ mkDerivation {
2017 ];
2118 description = "Compile Dhall to Bash";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/diagrams-solve.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, deepseq, fetchurl, tasty, tasty-hunit
1+{ mkDerivation, base, deepseq, stdenv, tasty, tasty-hunit
22, tasty-quickcheck
33}:
44mkDerivation {
55 pname = "diagrams-solve";
66 version = "0.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base ];
129 testHaskellDepends = [
1310 base deepseq tasty tasty-hunit tasty-quickcheck
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://projects.haskell.org/diagrams";
1613 description = "Pure Haskell solver routines used by diagrams";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/discrimination.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, array, base, containers, contravariant, criterion
2−, deepseq, fetchurl, ghc-prim, hashable, primitive, profunctors
3−, promises, semigroups, transformers, transformers-compat
2+, deepseq, ghc-prim, hashable, primitive, profunctors, promises
3+, semigroups, stdenv, transformers, transformers-compat
44, unordered-containers, vector, void
55}:
66mkDerivation {
77 pname = "discrimination";
88 version = "0.3";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 array base containers contravariant deepseq ghc-prim hashable
1512 primitive profunctors promises semigroups transformers
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "http://github.com/ekmett/discrimination/";
2320 description = "Fast generic linear-time sorting, joins and container construction";
2421 license = stdenv.lib.licenses.bsd3;
25−}
22+}
test/golden-test-cases/dotenv.nix.golden+5−8
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, base-compat, directory, exceptions, fetchurl
2−, hspec, hspec-megaparsec, megaparsec, optparse-applicative
3−, process, text, transformers, yaml
1+{ mkDerivation, base, base-compat, directory, exceptions, hspec
2+, hspec-megaparsec, megaparsec, optparse-applicative, process
3+, stdenv, text, transformers, yaml
44}:
55mkDerivation {
66 pname = "dotenv";
77 version = "0.5.2.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 enableSeparateDataOutput = true;
@@ -27,4 +24,4 @@ mkDerivation {
2724 homepage = "https://github.com/stackbuilders/dotenv-hs";
2825 description = "Loads environment variables from dotenv files";
2926 license = stdenv.lib.licenses.mit;
30−}
27+}
test/golden-test-cases/dotnet-timespan.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "dotnet-timespan";
44 version = "0.0.1.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "http://github.com/YoEight/dotnet-timespan";
118 description = ".NET TimeSpan";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/dpor.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, containers, deepseq, fetchurl, random
2−, semigroups
1+{ mkDerivation, base, containers, deepseq, random, semigroups
2+, stdenv
33}:
44mkDerivation {
55 pname = "dpor";
66 version = "0.2.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers deepseq random semigroups
1310 ];
1411 homepage = "https://github.com/barrucadu/dejafu";
1512 description = "A generic implementation of dynamic partial-order reduction (DPOR) for testing arbitrary models of concurrency";
1613 license = stdenv.lib.licenses.mit;
17−}
14+}
test/golden-test-cases/drawille.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, containers, fetchurl, hspec, QuickCheck }:
1+{ mkDerivation, base, containers, hspec, QuickCheck, stdenv }:
22mkDerivation {
33 pname = "drawille";
44 version = "0.1.2.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base containers ];
@@ -13,4 +10,4 @@ mkDerivation {
1310 homepage = "https://github.com/yamadapc/haskell-drawille#readme";
1411 description = "A port of asciimoo's drawille to haskell";
1512 license = stdenv.lib.licenses.gpl3;
16−}
13+}
test/golden-test-cases/drifter-postgresql.nix.golden+5−8
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, containers, drifter, either, fetchurl, mtl
2−, postgresql-simple, tasty, tasty-hunit, text, time, transformers
3−, transformers-compat
1+{ mkDerivation, base, containers, drifter, either, mtl
2+, postgresql-simple, stdenv, tasty, tasty-hunit, text, time
3+, transformers, transformers-compat
44}:
55mkDerivation {
66 pname = "drifter-postgresql";
77 version = "0.2.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base containers drifter mtl postgresql-simple time transformers
1411 transformers-compat
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "http://github.com/michaelxavier/drifter-postgresql";
2017 description = "PostgreSQL support for the drifter schema migration tool";
2118 license = stdenv.lib.licenses.mit;
22−}
19+}
test/golden-test-cases/ede.nix.golden+5−7
@@ -1,16 +1,13 @@
11{ mkDerivation, aeson, ansi-wl-pprint, base, bifunctors, bytestring
2−, comonad, directory, double-conversion, fetchurl, filepath, free
3−, lens, mtl, parsers, scientific, semigroups, tasty, tasty-golden
2+, comonad, directory, double-conversion, filepath, free, lens, mtl
3+, parsers, scientific, semigroups, stdenv, tasty, tasty-golden
44, text, text-format, text-manipulate, trifecta
55, unordered-containers, vector
66}:
77mkDerivation {
88 pname = "ede";
99 version = "0.2.8.7";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 enableSeparateDataOutput = true;
1512 libraryHaskellDepends = [
1613 aeson ansi-wl-pprint base bifunctors bytestring comonad directory
@@ -24,4 +21,5 @@ mkDerivation {
2421 homepage = "http://github.com/brendanhay/ede";
2522 description = "Templating language with similar syntax and features to Liquid or Jinja2";
2623 license = "unknown";
27−}
24+ hydraPlatforms = stdenv.lib.platforms.none;
25+}
test/golden-test-cases/ekg-cloudwatch.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, amazonka, amazonka-cloudwatch, amazonka-core, base
2−, bytestring, ekg-core, fetchurl, lens, resourcet, semigroups, text
2+, bytestring, ekg-core, lens, resourcet, semigroups, stdenv, text
33, time, unordered-containers
44}:
55mkDerivation {
66 pname = "ekg-cloudwatch";
77 version = "0.0.1.6";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 amazonka amazonka-cloudwatch amazonka-core base bytestring ekg-core
1411 lens resourcet semigroups text time unordered-containers
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/sellerlabs/ekg-cloudwatch#readme";
1714 description = "An ekg backend for Amazon Cloudwatch";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/emailaddress.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, base, bifunctors, bytestring, doctest
2−, email-validate, fetchurl, Glob, http-api-data, opaleye
3−, path-pieces, persistent, postgresql-simple, product-profunctors
4−, profunctors, text
2+, email-validate, Glob, http-api-data, opaleye, path-pieces
3+, persistent, postgresql-simple, product-profunctors, profunctors
4+, stdenv, text
55}:
66mkDerivation {
77 pname = "emailaddress";
88 version = "0.2.0.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 aeson base bifunctors bytestring email-validate http-api-data
1512 opaleye path-pieces persistent postgresql-simple
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/cdepillabout/emailaddress#readme";
2017 description = "Wrapper around email-validate library adding instances for common type classes";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/envelope.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, aeson, base, doctest, fetchurl, Glob, http-api-data
2−, mtl, text
1+{ mkDerivation, aeson, base, doctest, Glob, http-api-data, mtl
2+, stdenv, text
33}:
44mkDerivation {
55 pname = "envelope";
66 version = "0.2.2.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ aeson base http-api-data mtl text ];
129 testHaskellDepends = [ base doctest Glob ];
1310 homepage = "https://github.com/cdepillabout/envelope#readme";
1411 description = "Defines generic 'Envelope' type to wrap reponses from a JSON API";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/eventful-sqlite.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, aeson, base, bytestring, eventful-core
2−, eventful-sql-common, eventful-test-helpers, fetchurl, hspec
3−, HUnit, mtl, persistent, persistent-sqlite, text, uuid
2+, eventful-sql-common, eventful-test-helpers, hspec, HUnit, mtl
3+, persistent, persistent-sqlite, stdenv, text, uuid
44}:
55mkDerivation {
66 pname = "eventful-sqlite";
77 version = "0.2.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson base bytestring eventful-core eventful-sql-common mtl
1411 persistent text uuid
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/jdreaver/eventful#readme";
2219 description = "SQLite implementations for eventful";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/exact-pi.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, numtype-dk }:
1+{ mkDerivation, base, numtype-dk, stdenv }:
22mkDerivation {
33 pname = "exact-pi";
44 version = "0.4.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base numtype-dk ];
107 homepage = "https://github.com/dmcclean/exact-pi/";
118 description = "Exact rational multiples of pi (and integer powers of pi)";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/expiring-cache-map.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, containers, fetchurl, hashable
1+{ mkDerivation, base, bytestring, containers, hashable, stdenv
22, time, unordered-containers
33}:
44mkDerivation {
55 pname = "expiring-cache-map";
66 version = "0.0.6.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers hashable unordered-containers
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/elblake/expiring-cache-map";
1815 description = "General purpose simple caching";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/explicit-exception.nix.golden+3−6
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, deepseq, fetchurl, transformers }:
1+{ mkDerivation, base, deepseq, stdenv, transformers }:
22mkDerivation {
33 pname = "explicit-exception";
44 version = "0.1.9";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base deepseq transformers ];
129 homepage = "http://www.haskell.org/haskellwiki/Exception";
1310 description = "Exceptions which are explicit in the type signature";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/fdo-notify.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, dbus, fetchurl }:
1+{ mkDerivation, base, containers, dbus, stdenv }:
22mkDerivation {
33 pname = "fdo-notify";
44 version = "0.3.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers dbus ];
107 homepage = "http://bitbucket.org/taejo/fdo-notify/";
118 description = "Desktop Notifications client";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/fgl.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, containers, deepseq, fetchurl, hspec
2−, microbench, QuickCheck, transformers
1+{ mkDerivation, array, base, containers, deepseq, hspec, microbench
2+, QuickCheck, stdenv, transformers
33}:
44mkDerivation {
55 pname = "fgl";
66 version = "5.5.4.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 array base containers deepseq transformers
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 benchmarkHaskellDepends = [ base deepseq microbench ];
1613 description = "Martin Erwig's Functional Graph Library";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/file-modules.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, async, base, directory, fetchurl, filepath
2−, haskell-src-exts, MissingH, regex-compat, regex-pcre
1+{ mkDerivation, async, base, directory, filepath, haskell-src-exts
2+, MissingH, regex-compat, regex-pcre, stdenv
33}:
44mkDerivation {
55 pname = "file-modules";
66 version = "0.1.2.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/yamadapc/stack-run-auto";
2219 description = "Takes a Haskell source-code file and outputs its modules";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/fingertree.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, HUnit, QuickCheck, test-framework
1+{ mkDerivation, base, HUnit, QuickCheck, stdenv, test-framework
22, test-framework-hunit, test-framework-quickcheck2
33}:
44mkDerivation {
55 pname = "fingertree";
66 version = "0.1.3.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base ];
129 testHaskellDepends = [
1310 base HUnit QuickCheck test-framework test-framework-hunit
@@ -15,4 +12,4 @@ mkDerivation {
1512 ];
1613 description = "Generic finger-tree structure, with example instances";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/fixed-vector.nix.golden+4−7
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, deepseq, doctest, fetchurl, filemanip
2−, primitive
1+{ mkDerivation, base, deepseq, doctest, filemanip, primitive
2+, stdenv
33}:
44mkDerivation {
55 pname = "fixed-vector";
66 version = "1.0.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base deepseq primitive ];
129 testHaskellDepends = [ base doctest filemanip primitive ];
1310 description = "Generic vectors with statically known size";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/fixed.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "fixed";
44 version = "0.2.1.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "http://github.com/ekmett/fixed";
118 description = "Signed 15.16 precision fixed point arithmetic";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/foundation.nix.golden+3−6
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, basement, fetchurl, gauge, ghc-prim }:
1+{ mkDerivation, base, basement, gauge, ghc-prim, stdenv }:
22mkDerivation {
33 pname = "foundation";
44 version = "0.0.17";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base basement ghc-prim ];
107 testHaskellDepends = [ base basement ];
118 benchmarkHaskellDepends = [ base basement gauge ];
129 homepage = "https://github.com/haskell-foundation/foundation";
1310 description = "Alternative prelude with batteries and no dependencies";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/frisby.nix.golden+3−7
@@ -1,14 +1,10 @@
1−{ mkDerivation, array, base, containers, fetchurl, mtl, semigroups
2−}:
1+{ mkDerivation, array, base, containers, mtl, semigroups, stdenv }:
32mkDerivation {
43 pname = "frisby";
54 version = "0.2.2";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ array base containers mtl semigroups ];
117 homepage = "http://repetae.net/computer/frisby/";
128 description = "Linear time composable parser for PEG grammars";
139 license = stdenv.lib.licenses.bsd3;
14−}
10+}
test/golden-test-cases/funcmp.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, filepath, process }:
1+{ mkDerivation, base, filepath, process, stdenv }:
22mkDerivation {
33 pname = "funcmp";
44 version = "1.8";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 enableSeparateDataOutput = true;
107 libraryHaskellDepends = [ base filepath process ];
118 homepage = "http://savannah.nongnu.org/projects/funcmp/";
129 description = "Functional MetaPost";
1310 license = stdenv.lib.licenses.gpl3;
14−}
11+}
test/golden-test-cases/functor-classes-compat.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, containers, fetchurl, hashable
1+{ mkDerivation, base, containers, hashable, stdenv
22, unordered-containers, vector
33}:
44mkDerivation {
55 pname = "functor-classes-compat";
66 version = "1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers hashable unordered-containers vector
1310 ];
1411 homepage = "https://github.com/phadej/functor-classes-compat#readme";
1512 description = "Data.Functor.Classes instances for core packages";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/general-games.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, hspec, HUnit, monad-loops
2−, MonadRandom, random, random-shuffle
1+{ mkDerivation, base, hspec, HUnit, monad-loops, MonadRandom
2+, random, random-shuffle, stdenv
33}:
44mkDerivation {
55 pname = "general-games";
66 version = "1.0.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base monad-loops MonadRandom random random-shuffle
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/cgorski/general-games";
1613 description = "Library supporting simulation of a number of games";
1714 license = stdenv.lib.licenses.mit;
18−}
15+}
test/golden-test-cases/generic-lens.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, criterion, deepseq, doctest, fetchurl
2−, inspection-testing, lens, profunctors, QuickCheck, tagged
1+{ mkDerivation, base, criterion, deepseq, doctest
2+, inspection-testing, lens, profunctors, QuickCheck, stdenv, tagged
33}:
44mkDerivation {
55 pname = "generic-lens";
66 version = "0.5.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base profunctors tagged ];
129 testHaskellDepends = [ base doctest inspection-testing lens ];
1310 benchmarkHaskellDepends = [
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/kcsongor/generic-lens";
1714 description = "Generic data-structure operations exposed as lenses";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/genvalidity-aeson.nix.golden+5−8
@@ -1,15 +1,12 @@
1−{ mkDerivation, aeson, base, fetchurl, genvalidity
2−, genvalidity-hspec, genvalidity-scientific, genvalidity-text
1+{ mkDerivation, aeson, base, genvalidity, genvalidity-hspec
2+, genvalidity-scientific, genvalidity-text
33, genvalidity-unordered-containers, genvalidity-vector, hspec
4−, QuickCheck, validity, validity-aeson
4+, QuickCheck, stdenv, validity, validity-aeson
55}:
66mkDerivation {
77 pname = "genvalidity-aeson";
88 version = "0.1.0.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 aeson base genvalidity genvalidity-scientific genvalidity-text
1512 genvalidity-unordered-containers genvalidity-vector QuickCheck
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/NorfairKing/validity#readme";
2219 description = "GenValidity support for aeson";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/genvalidity-hspec-aeson.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, aeson, base, bytestring, deepseq, doctest, fetchurl
1+{ mkDerivation, aeson, base, bytestring, deepseq, doctest
22, genvalidity, genvalidity-aeson, genvalidity-hspec
3−, genvalidity-text, hspec, QuickCheck, text
3+, genvalidity-text, hspec, QuickCheck, stdenv, text
44}:
55mkDerivation {
66 pname = "genvalidity-hspec-aeson";
77 version = "0.1.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson base bytestring deepseq genvalidity genvalidity-hspec hspec
1411 QuickCheck
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://cs-syd.eu";
2118 description = "Standard spec's for aeson-related instances";
2219 license = stdenv.lib.licenses.mit;
23−}
20+}
test/golden-test-cases/genvalidity-hspec-binary.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, binary, deepseq, doctest, fetchurl
2−, genvalidity, genvalidity-hspec, hspec, QuickCheck
1+{ mkDerivation, base, binary, deepseq, doctest, genvalidity
2+, genvalidity-hspec, hspec, QuickCheck, stdenv
33}:
44mkDerivation {
55 pname = "genvalidity-hspec-binary";
66 version = "0.1.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base binary deepseq genvalidity genvalidity-hspec hspec QuickCheck
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/NorfairKing/validity#readme";
1613 description = "Standard spec's for binary-related Instances";
1714 license = stdenv.lib.licenses.mit;
18−}
15+}
test/golden-test-cases/genvalidity-scientific.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, genvalidity, genvalidity-hspec
2−, hspec, QuickCheck, scientific, validity, validity-scientific
1+{ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
2+, QuickCheck, scientific, stdenv, validity, validity-scientific
33}:
44mkDerivation {
55 pname = "genvalidity-scientific";
66 version = "0.1.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base genvalidity QuickCheck scientific validity validity-scientific
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/NorfairKing/validity#readme";
1815 description = "GenValidity support for Scientific";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/genvalidity-uuid.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, genvalidity, genvalidity-hspec
2−, hspec, QuickCheck, uuid, validity, validity-uuid
1+{ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
2+, QuickCheck, stdenv, uuid, validity, validity-uuid
33}:
44mkDerivation {
55 pname = "genvalidity-uuid";
66 version = "0.0.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base genvalidity QuickCheck uuid validity validity-uuid
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/NorfairKing/validity#readme";
1815 description = "GenValidity support for UUID";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/ghc-syb-utils.nix.golden+3−6
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, directory, fetchurl, filepath, ghc, ghc-paths
1+{ mkDerivation, base, directory, filepath, ghc, ghc-paths, stdenv
22, syb
33}:
44mkDerivation {
55 pname = "ghc-syb-utils";
66 version = "0.2.3.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base ghc syb ];
129 testHaskellDepends = [ base directory filepath ghc ghc-paths ];
1310 homepage = "http://github.com/nominolo/ghc-syb";
1411 description = "Scrap Your Boilerplate utilities for the GHC API";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/ghcid.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, ansi-terminal, base, cmdargs, containers, directory
2−, extra, fetchurl, filepath, fsnotify, process, tasty, tasty-hunit
2+, extra, filepath, fsnotify, process, stdenv, tasty, tasty-hunit
33, terminal-size, time, unix
44}:
55mkDerivation {
66 pname = "ghcid";
77 version = "0.6.8";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
@@ -25,4 +22,4 @@ mkDerivation {
2522 homepage = "https://github.com/ndmitchell/ghcid#readme";
2623 description = "GHCi based bare bones IDE";
2724 license = stdenv.lib.licenses.bsd3;
28−}
25+}
test/golden-test-cases/giphy-api.nix.golden+5−9
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, base, basic-prelude, bytestring, containers
2−, directory, fetchurl, hspec, http-api-data, http-client
3−, http-client-tls, lens, microlens, microlens-th, mtl, network-uri
4−, servant, servant-client, text, transformers
2+, directory, hspec, http-api-data, http-client, http-client-tls
3+, lens, microlens, microlens-th, mtl, network-uri, servant
4+, servant-client, stdenv, text, transformers
55}:
66mkDerivation {
77 pname = "giphy-api";
88 version = "0.5.2.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -17,7 +14,6 @@ mkDerivation {
1714 microlens microlens-th mtl network-uri servant servant-client text
1815 transformers
1916 ];
20− executableHaskellDepends = [ base network-uri text ];
2117 testHaskellDepends = [
2218 aeson base basic-prelude bytestring containers directory hspec lens
2319 network-uri text
@@ -25,4 +21,4 @@ mkDerivation {
2521 homepage = "http://github.com/passy/giphy-api#readme";
2622 description = "Giphy HTTP API wrapper and CLI search tool";
2723 license = stdenv.lib.licenses.bsd3;
28−}
24+}
test/golden-test-cases/github.nix.golden+6−9
@@ -1,19 +1,16 @@
11{ mkDerivation, aeson, aeson-compat, base, base-compat
22, base16-bytestring, binary, binary-orphans, byteable, bytestring
33, containers, cryptohash, deepseq, deepseq-generics, exceptions
4−, fetchurl, file-embed, hashable, hspec, hspec-discover
5−, http-client, http-client-tls, http-link-header, http-types
6−, iso8601-time, mtl, network-uri, semigroups, text, time, tls
7−, transformers, transformers-compat, unordered-containers, vector
4+, file-embed, hashable, hspec, hspec-discover, http-client
5+, http-client-tls, http-link-header, http-types, iso8601-time, mtl
6+, network-uri, semigroups, stdenv, text, time, tls, transformers
7+, transformers-compat, unordered-containers, vector
88, vector-instances
99}:
1010mkDerivation {
1111 pname = "github";
1212 version = "0.18";
13− src = fetchurl {
14− url = "http://example.org/";
15− sha256 = "abc";
16− };
13+ sha256 = "deadbeef";
1714 libraryHaskellDepends = [
1815 aeson aeson-compat base base-compat base16-bytestring binary
1916 binary-orphans byteable bytestring containers cryptohash deepseq
@@ -30,4 +27,4 @@ mkDerivation {
3027 homepage = "https://github.com/phadej/github";
3128 description = "Access to the GitHub API, v3";
3229 license = stdenv.lib.licenses.bsd3;
33−}
30+}
test/golden-test-cases/gl.nix.golden+5−8
@@ -1,20 +1,17 @@
1−{ mkDerivation, base, Cabal, containers, directory, fetchurl
2−, filepath, fixed, half, hxt, mesa, transformers
1+{ mkDerivation, base, Cabal, containers, directory, filepath, fixed
2+, half, hxt, libGL, stdenv, transformers
33}:
44mkDerivation {
55 pname = "gl";
66 version = "0.8.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 setupHaskellDepends = [
129 base Cabal containers directory filepath hxt transformers
1310 ];
1411 libraryHaskellDepends = [
1512 base containers fixed half transformers
1613 ];
17− librarySystemDepends = [ mesa ];
14+ librarySystemDepends = [ libGL ];
1815 description = "Complete OpenGL raw bindings";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/gogol-adexchange-buyer.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-adexchange-buyer";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Ad Exchange Buyer SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-admin-emailmigration.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-admin-emailmigration";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Email Migration API v2 SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-affiliates.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-affiliates";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Affiliate Network SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-apps-tasks.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-apps-tasks";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Tasks SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-appstate.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-appstate";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google App State SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-blogger.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-blogger";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Blogger SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-datastore.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-datastore";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Cloud Datastore SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-dfareporting.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-dfareporting";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google DCM/DFA Reporting And Trafficking SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-firebase-rules.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-firebase-rules";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Firebase Rules SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-gmail.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-gmail";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Gmail SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-kgsearch.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-kgsearch";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Knowledge Graph Search SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-maps-engine.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-maps-engine";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Maps Engine SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-plus.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-plus";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google + SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-resourceviews.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-resourceviews";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Compute Engine Instance Groups SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-translate.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-translate";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Translate SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-webmaster-tools.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-webmaster-tools";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google Search Console SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/gogol-youtube.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, fetchurl, gogol-core }:
1+{ mkDerivation, base, gogol-core, stdenv }:
22mkDerivation {
33 pname = "gogol-youtube";
44 version = "0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base gogol-core ];
107 homepage = "https://github.com/brendanhay/gogol";
118 description = "Google YouTube Data SDK";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/groundhog-mysql.nix.golden+4−7
@@ -1,18 +1,15 @@
1−{ mkDerivation, base, bytestring, containers, fetchurl, groundhog
1+{ mkDerivation, base, bytestring, containers, groundhog
22, monad-control, monad-logger, mysql, mysql-simple, resource-pool
3−, resourcet, text, time, transformers
3+, resourcet, stdenv, text, time, transformers
44}:
55mkDerivation {
66 pname = "groundhog-mysql";
77 version = "0.8";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base bytestring containers groundhog monad-control monad-logger
1411 mysql mysql-simple resource-pool resourcet text time transformers
1512 ];
1613 description = "MySQL backend for the groundhog library";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/gsasl.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, bytestring, fetchurl, gsasl, transformers }:
1+{ mkDerivation, base, bytestring, gsasl, stdenv, transformers }:
22mkDerivation {
33 pname = "gsasl";
44 version = "0.3.6";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring transformers ];
107 libraryPkgconfigDepends = [ gsasl ];
118 homepage = "https://john-millikin.com/software/haskell-gsasl/";
129 description = "Bindings for GNU libgsasl";
1310 license = stdenv.lib.licenses.gpl3;
14−}
11+}
test/golden-test-cases/hOpenPGP.nix.golden+4−7
@@ -2,20 +2,17 @@
22, base64-bytestring, bifunctors, binary, binary-conduit, byteable
33, bytestring, bzlib, conduit, conduit-extra, containers, criterion
44, crypto-cipher-types, cryptonite, data-default-class, errors
5−, fetchurl, hashable, incremental-parser, ixset-typed, lens, memory
5+, hashable, incremental-parser, ixset-typed, lens, memory
66, monad-loops, nettle, network, network-uri, newtype
77, openpgp-asciiarmor, QuickCheck, quickcheck-instances, resourcet
8−, securemem, semigroups, split, tasty, tasty-hunit
8+, securemem, semigroups, split, stdenv, tasty, tasty-hunit
99, tasty-quickcheck, text, time, time-locale-compat, transformers
1010, unordered-containers, wl-pprint-extras, zlib
1111}:
1212mkDerivation {
1313 pname = "hOpenPGP";
1414 version = "2.5.5";
15− src = fetchurl {
16− url = "http://example.org/";
17− sha256 = "abc";
18− };
15+ sha256 = "deadbeef";
1916 libraryHaskellDepends = [
2017 aeson attoparsec base base16-bytestring base64-bytestring
2118 bifunctors binary binary-conduit byteable bytestring bzlib conduit
@@ -49,4 +46,4 @@ mkDerivation {
4946 homepage = "http://floss.scru.org/hOpenPGP/";
5047 description = "native Haskell implementation of OpenPGP (RFC4880)";
5148 license = stdenv.lib.licenses.mit;
52−}
49+}
test/golden-test-cases/hPDB-examples.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, AC-Vector, base, bytestring, containers, deepseq
2−, directory, fetchurl, ghc-prim, GLUT, hPDB, IfElse, iterable, mtl
3−, Octree, OpenGL, process, QuickCheck, template-haskell, text
2+, directory, ghc-prim, GLUT, hPDB, IfElse, iterable, mtl, Octree
3+, OpenGL, process, QuickCheck, stdenv, template-haskell, text
44, text-format, time, vector
55}:
66mkDerivation {
77 pname = "hPDB-examples";
88 version = "1.2.0.8";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = false;
1411 isExecutable = true;
1512 executableHaskellDepends = [
@@ -24,4 +21,4 @@ mkDerivation {
2421 homepage = "https://github.com/BioHaskell/hPDB-examples";
2522 description = "Examples for hPDB library";
2623 license = stdenv.lib.licenses.bsd3;
27−}
24+}
test/golden-test-cases/haddock-library.cabalnew file+130
@@ -0,0 +1,130 @@
1+name: haddock-library
2+version: 1.4.5
3+synopsis: Library exposing some functionality of Haddock.
4+description: Haddock is a documentation-generation tool for Haskell
5+ libraries. These modules expose some functionality of it
6+ without pulling in the GHC dependency. Please note that the
7+ API is likely to change so specify upper bounds in your
8+ project if you can't release often. For interacting with Haddock
9+ itself, see the ‘haddock’ package.
10+license: BSD3
11+license-file: LICENSE
12+maintainer: Alex Biehl <alexbiehl@gmail.com>, Simon Hengel <sol@typeful.net>, Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>
13+homepage: http://www.haskell.org/haddock/
14+bug-reports: https://github.com/haskell/haddock/issues
15+category: Documentation
16+build-type: Simple
17+cabal-version: >= 2.0
18+extra-source-files:
19+ CHANGES.md
20+library
21+ default-language: Haskell2010
22+
23+ build-depends:
24+ base >= 4.5 && < 4.11
25+ , bytestring >= 0.9.2.1 && < 0.11
26+ , transformers >= 0.3.0 && < 0.6
27+
28+ -- internal sub-lib
29+ build-depends: attoparsec
30+
31+ hs-source-dirs: src
32+ ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2
33+
34+ exposed-modules:
35+ Documentation.Haddock.Doc
36+ Documentation.Haddock.Markup
37+ Documentation.Haddock.Parser
38+ Documentation.Haddock.Parser.Monad
39+ Documentation.Haddock.Types
40+ Documentation.Haddock.Utf8
41+
42+ other-modules:
43+ Documentation.Haddock.Parser.Util
44+
45+ ghc-options: -Wall
46+ if impl(ghc >= 8.0)
47+ ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
48+
49+library attoparsec
50+ default-language: Haskell2010
51+
52+ build-depends:
53+ base >= 4.5 && < 4.11
54+ , bytestring >= 0.9.2.1 && < 0.11
55+ , deepseq >= 1.3 && < 1.5
56+
57+ hs-source-dirs: vendor/attoparsec-0.13.1.0
58+
59+ -- NB: haddock-library needs only small part of lib:attoparsec
60+ -- internally, so we only bundle that subset here
61+ exposed-modules:
62+ Data.Attoparsec.ByteString
63+ Data.Attoparsec.ByteString.Char8
64+
65+ other-modules:
66+ Data.Attoparsec
67+ Data.Attoparsec.ByteString.Buffer
68+ Data.Attoparsec.ByteString.FastSet
69+ Data.Attoparsec.ByteString.Internal
70+ Data.Attoparsec.Combinator
71+ Data.Attoparsec.Internal
72+ Data.Attoparsec.Internal.Fhthagn
73+ Data.Attoparsec.Internal.Types
74+ Data.Attoparsec.Number
75+
76+ ghc-options: -funbox-strict-fields -Wall -fwarn-tabs -O2
77+
78+ ghc-options: -Wall
79+ if impl(ghc >= 8.0)
80+ ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
81+ else
82+ build-depends: semigroups ^>= 0.18.3, fail ^>= 4.9.0.0
83+
84+
85+test-suite spec
86+ type: exitcode-stdio-1.0
87+ default-language: Haskell2010
88+ main-is: Spec.hs
89+ hs-source-dirs:
90+ test
91+ , src
92+ ghc-options: -Wall
93+
94+ cpp-options:
95+ -DTEST
96+
97+ other-modules:
98+ Documentation.Haddock.Doc
99+ Documentation.Haddock.Parser
100+ Documentation.Haddock.Parser.Monad
101+ Documentation.Haddock.Parser.Util
102+ Documentation.Haddock.Parser.UtilSpec
103+ Documentation.Haddock.ParserSpec
104+ Documentation.Haddock.Types
105+ Documentation.Haddock.Utf8
106+ Documentation.Haddock.Utf8Spec
107+
108+ build-depends:
109+ base-compat ^>= 0.9.3
110+ , transformers >= 0.3.0 && < 0.6
111+ , hspec ^>= 2.4.4
112+ , QuickCheck ^>= 2.10
113+
114+ -- internal sub-lib
115+ build-depends: attoparsec
116+
117+ -- Versions for the dependencies below are transitively pinned by
118+ -- dependency on haddock-library:lib:attoparsec
119+ build-depends:
120+ base
121+ , bytestring
122+ , deepseq
123+
124+ build-tool-depends:
125+ hspec-discover:hspec-discover ^>= 2.4.4
126+
127+source-repository head
128+ type: git
129+ subdir: haddock-library
130+ location: https://github.com/haskell/haddock.git
test/golden-test-cases/haddock-library.nix.goldennew file+17
@@ -0,0 +1,17 @@
1+{ mkDerivation, base, base-compat, bytestring, deepseq, hspec
2+, hspec-discover, QuickCheck, stdenv, transformers
3+}:
4+mkDerivation {
5+ pname = "haddock-library";
6+ version = "1.4.5";
7+ sha256 = "deadbeef";
8+ libraryHaskellDepends = [ base bytestring deepseq transformers ];
9+ testHaskellDepends = [
10+ base base-compat bytestring deepseq hspec QuickCheck transformers
11+ ];
12+ testToolDepends = [ hspec-discover ];
13+ doHaddock = false;
14+ homepage = "http://www.haskell.org/haddock/";
15+ description = "Library exposing some functionality of Haddock";
16+ license = stdenv.lib.licenses.bsd3;
17+}
test/golden-test-cases/hakyll.nix.golden+6−9
@@ -1,20 +1,17 @@
11{ mkDerivation, base, binary, blaze-html, blaze-markup, bytestring
22, containers, cryptohash, data-default, deepseq, directory
3−, fetchurl, filepath, fsnotify, http-conduit, http-types, lrucache
4−, mtl, network, network-uri, optparse-applicative, pandoc
3+, filepath, fsnotify, http-conduit, http-types, lrucache, mtl
4+, network, network-uri, optparse-applicative, pandoc
55, pandoc-citeproc, parsec, process, QuickCheck, random, regex-base
6−, regex-tdfa, resourcet, scientific, system-filepath, tagsoup
7−, tasty, tasty-hunit, tasty-quickcheck, text, time
6+, regex-tdfa, resourcet, scientific, stdenv, system-filepath
7+, tagsoup, tasty, tasty-hunit, tasty-quickcheck, text, time
88, time-locale-compat, unordered-containers, utillinux, vector, wai
99, wai-app-static, warp, yaml
1010}:
1111mkDerivation {
1212 pname = "hakyll";
1313 version = "4.10.0.0";
14− src = fetchurl {
15− url = "http://example.org/";
16− sha256 = "abc";
17− };
14+ sha256 = "deadbeef";
1815 isLibrary = true;
1916 isExecutable = true;
2017 enableSeparateDataOutput = true;
@@ -42,4 +39,4 @@ mkDerivation {
4239 homepage = "http://jaspervdj.be/hakyll";
4340 description = "A static website compiler library";
4441 license = stdenv.lib.licenses.bsd3;
45−}
42+}
test/golden-test-cases/happstack-hsp.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, happstack-server, harp
2−, hsp, hsx2hs, mtl, syb, text, utf8-string
1+{ mkDerivation, base, bytestring, happstack-server, harp, hsp
2+, hsx2hs, mtl, stdenv, syb, text, utf8-string
33}:
44mkDerivation {
55 pname = "happstack-hsp";
66 version = "7.3.7.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring happstack-server harp hsp hsx2hs mtl syb text
1310 utf8-string
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://www.happstack.com/";
1613 description = "Support for using HSP templates in Happstack";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/happy.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, Cabal, containers, directory, fetchurl
2−, filepath, mtl, process
1+{ mkDerivation, array, base, Cabal, containers, directory, filepath
2+, mtl, process, stdenv
33}:
44mkDerivation {
55 pname = "happy";
66 version = "1.19.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = false;
129 isExecutable = true;
1310 setupHaskellDepends = [ base Cabal directory filepath ];
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://www.haskell.org/happy/";
1714 description = "Happy is a parser generator for Haskell";
1815 license = stdenv.lib.licenses.bsd2;
19−}
16+}
test/golden-test-cases/harp.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "harp";
44 version = "0.4.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/seereason/harp";
118 description = "HaRP allows pattern-matching with regular expressions";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/hashtables.nix.golden+3−7
@@ -1,17 +1,13 @@
1−{ mkDerivation, base, fetchurl, ghc-prim, hashable, primitive
2−, vector
1+{ mkDerivation, base, ghc-prim, hashable, primitive, stdenv, vector
32}:
43mkDerivation {
54 pname = "hashtables";
65 version = "1.2.2.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
6+ sha256 = "deadbeef";
117 libraryHaskellDepends = [
128 base ghc-prim hashable primitive vector
139 ];
1410 homepage = "http://github.com/gregorycollins/hashtables";
1511 description = "Mutable hash tables in the ST monad";
1612 license = stdenv.lib.licenses.bsd3;
17−}
13+}
test/golden-test-cases/haskell-tools-debug.nix.golden+6−9
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, fetchurl, filepath, ghc, ghc-paths
2−, haskell-tools-ast, haskell-tools-backend-ghc
3−, haskell-tools-builtin-refactorings, haskell-tools-prettyprint
4−, haskell-tools-refactor, references, split, template-haskell
1+{ mkDerivation, base, filepath, ghc, ghc-paths, haskell-tools-ast
2+, haskell-tools-backend-ghc, haskell-tools-builtin-refactorings
3+, haskell-tools-prettyprint, haskell-tools-refactor, references
4+, split, stdenv, template-haskell
55}:
66mkDerivation {
77 pname = "haskell-tools-debug";
88 version = "1.0.0.3";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "https://github.com/haskell-tools/haskell-tools";
2320 description = "Debugging Tools for Haskell-tools";
2421 license = stdenv.lib.licenses.bsd3;
25−}
22+}
test/golden-test-cases/haskell-tools-rewrite.nix.golden+5−8
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, containers, directory, fetchurl, filepath
2−, ghc, haskell-tools-ast, haskell-tools-prettyprint, mtl
3−, references, tasty, tasty-hunit
1+{ mkDerivation, base, containers, directory, filepath, ghc
2+, haskell-tools-ast, haskell-tools-prettyprint, mtl, references
3+, stdenv, tasty, tasty-hunit
44}:
55mkDerivation {
66 pname = "haskell-tools-rewrite";
77 version = "1.0.0.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base containers ghc haskell-tools-ast haskell-tools-prettyprint mtl
1411 references
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/haskell-tools/haskell-tools";
2118 description = "Facilities for generating new parts of the Haskell-Tools AST";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/hasql.nix.golden+7−10
@@ -1,18 +1,15 @@
11{ mkDerivation, attoparsec, base, base-prelude, bug, bytestring
22, bytestring-strict-builder, contravariant, contravariant-extras
3−, criterion, data-default-class, dlist, fetchurl, hashable
4−, hashtables, loch-th, mtl, placeholders, postgresql-binary
5−, postgresql-libpq, profunctors, QuickCheck, quickcheck-instances
6−, rebase, rerebase, semigroups, tasty, tasty-hunit
7−, tasty-quickcheck, text, transformers, vector
3+, criterion, data-default-class, dlist, hashable, hashtables
4+, loch-th, mtl, placeholders, postgresql-binary, postgresql-libpq
5+, profunctors, QuickCheck, quickcheck-instances, rebase, rerebase
6+, semigroups, stdenv, tasty, tasty-hunit, tasty-quickcheck, text
7+, transformers, vector
88}:
99mkDerivation {
1010 pname = "hasql";
1111 version = "1.1.1";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 libraryHaskellDepends = [
1714 attoparsec base base-prelude bytestring bytestring-strict-builder
1815 contravariant contravariant-extras data-default-class dlist
@@ -27,4 +24,4 @@ mkDerivation {
2724 homepage = "https://github.com/nikita-volkov/hasql";
2825 description = "An efficient PostgreSQL driver and a flexible mapping API";
2926 license = stdenv.lib.licenses.mit;
30−}
27+}
test/golden-test-cases/hformat.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, ansi-terminal, base, base-unicode-symbols, fetchurl
2−, hspec, text
1+{ mkDerivation, ansi-terminal, base, base-unicode-symbols, hspec
2+, stdenv, text
33}:
44mkDerivation {
55 pname = "hformat";
66 version = "0.3.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 ansi-terminal base base-unicode-symbols text
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://github.com/mvoidex/hformat";
1613 description = "Simple Haskell formatting";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/highlighting-kate.nix.golden+6−9
@@ -1,25 +1,22 @@
1−{ mkDerivation, base, blaze-html, containers, Diff, directory
2−, fetchurl, filepath, mtl, parsec, process, regex-pcre-builtin
1+{ mkDerivation, base, blaze-html, bytestring, containers, Diff
2+, directory, filepath, mtl, parsec, pcre-light, process, stdenv
33, utf8-string
44}:
55mkDerivation {
66 pname = "highlighting-kate";
77 version = "0.6.4";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
9+ configureFlags = [ "-fpcre-light" ];
1210 isLibrary = true;
1311 isExecutable = true;
1412 libraryHaskellDepends = [
15− base blaze-html containers mtl parsec regex-pcre-builtin
13+ base blaze-html bytestring containers mtl parsec pcre-light
1614 utf8-string
1715 ];
18− executableHaskellDepends = [ base blaze-html containers filepath ];
1916 testHaskellDepends = [
2017 base blaze-html containers Diff directory filepath process
2118 ];
2219 homepage = "http://github.com/jgm/highlighting-kate";
2320 description = "Syntax highlighting";
2421 license = "GPL";
25−}
22+}
test/golden-test-cases/hit.nix.golden+5−9
@@ -1,16 +1,12 @@
11{ mkDerivation, attoparsec, base, byteable, bytedump, bytestring
2−, containers, cryptohash, fetchurl, hourglass, mtl, parsec
3−, patience, random, system-fileio, system-filepath, tasty
4−, tasty-quickcheck, unix-compat, utf8-string, vector, zlib
5−, zlib-bindings
2+, containers, cryptohash, hourglass, mtl, parsec, patience, random
3+, stdenv, system-fileio, system-filepath, tasty, tasty-quickcheck
4+, unix-compat, utf8-string, vector, zlib, zlib-bindings
65}:
76mkDerivation {
87 pname = "hit";
98 version = "0.6.3";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
9+ sha256 = "deadbeef";
1410 isLibrary = true;
1511 isExecutable = true;
1612 enableSeparateDataOutput = true;
@@ -25,4 +21,4 @@ mkDerivation {
2521 homepage = "http://github.com/vincenthz/hit";
2622 description = "Git operations in haskell";
2723 license = stdenv.lib.licenses.bsd3;
28−}
24+}
test/golden-test-cases/hjson.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, fetchurl, parsec }:
1+{ mkDerivation, base, containers, parsec, stdenv }:
22mkDerivation {
33 pname = "hjson";
44 version = "1.3.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers parsec ];
107 description = "JSON parsing library";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/hmpfr.nix.golden+3−6
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, fetchurl, integer-gmp, mpfr }:
1+{ mkDerivation, base, integer-gmp, mpfr, stdenv }:
22mkDerivation {
33 pname = "hmpfr";
44 version = "0.4.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 enableSeparateDataOutput = true;
107 libraryHaskellDepends = [ base integer-gmp ];
118 librarySystemDepends = [ mpfr ];
129 homepage = "https://github.com/michalkonecny/hmpfr";
1310 description = "Haskell binding to the MPFR library";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/hoogle.nix.golden+5−8
@@ -1,18 +1,15 @@
11{ mkDerivation, aeson, base, binary, bytestring, cmdargs, conduit
22, conduit-extra, connection, containers, deepseq, directory, extra
3−, fetchurl, filepath, haskell-src-exts, http-conduit, http-types
4−, js-flot, js-jquery, mmap, network, network-uri, old-locale
5−, process, process-extras, QuickCheck, resourcet, storable-tuple
3+, filepath, haskell-src-exts, http-conduit, http-types, js-flot
4+, js-jquery, mmap, network, network-uri, old-locale, process
5+, process-extras, QuickCheck, resourcet, stdenv, storable-tuple
66, tar, template-haskell, text, time, transformers, uniplate
77, utf8-string, vector, wai, wai-logger, warp, warp-tls, zlib
88}:
99mkDerivation {
1010 pname = "hoogle";
1111 version = "5.0.14";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 isLibrary = true;
1714 isExecutable = true;
1815 enableSeparateDataOutput = true;
@@ -30,4 +27,4 @@ mkDerivation {
3027 homepage = "http://hoogle.haskell.org/";
3128 description = "Haskell API Search";
3229 license = stdenv.lib.licenses.bsd3;
33−}
30+}
test/golden-test-cases/hostname-validate.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, attoparsec, base, bytestring, fetchurl }:
1+{ mkDerivation, attoparsec, base, bytestring, stdenv }:
22mkDerivation {
33 pname = "hostname-validate";
44 version = "1.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ attoparsec base bytestring ];
107 description = "Validate hostnames e.g. localhost or foo.co.uk.";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/hsinstall.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, directory, fetchurl, filepath }:
1+{ mkDerivation, base, directory, filepath, stdenv }:
22mkDerivation {
33 pname = "hsinstall";
44 version = "1.6";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 enableSeparateDataOutput = true;
@@ -13,4 +10,4 @@ mkDerivation {
1310 executableHaskellDepends = [ base directory filepath ];
1411 description = "Install Haskell software";
1512 license = stdenv.lib.licenses.isc;
16−}
13+}
test/golden-test-cases/hstatsd.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, mtl, network, text }:
1+{ mkDerivation, base, bytestring, mtl, network, stdenv, text }:
22mkDerivation {
33 pname = "hstatsd";
44 version = "0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring mtl network text ];
107 homepage = "https://github.com/mokus0/hstatsd";
118 description = "Quick and dirty statsd interface";
129 license = stdenv.lib.licenses.publicDomain;
13−}
10+}
test/golden-test-cases/hsx-jmacro.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, hsp, jmacro, mtl, text
1+{ mkDerivation, base, hsp, jmacro, mtl, stdenv, text
22, wl-pprint-text
33}:
44mkDerivation {
55 pname = "hsx-jmacro";
66 version = "7.3.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base hsp jmacro mtl text wl-pprint-text
1310 ];
1411 homepage = "http://www.happstack.com/";
1512 description = "hsp+jmacro support";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/hsyslog.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, Cabal, cabal-doctest, doctest, fetchurl }:
1+{ mkDerivation, base, Cabal, cabal-doctest, doctest, stdenv }:
22mkDerivation {
33 pname = "hsyslog";
44 version = "5.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -14,4 +11,4 @@ mkDerivation {
1411 homepage = "http://github.com/peti/hsyslog";
1512 description = "FFI interface to syslog(3) from POSIX.1-2001";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/htoml.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, aeson, base, bytestring, containers, criterion
2−, fetchurl, file-embed, old-locale, parsec, tasty, tasty-hspec
2+, file-embed, old-locale, parsec, stdenv, tasty, tasty-hspec
33, tasty-hunit, text, time, unordered-containers, vector
44}:
55mkDerivation {
66 pname = "htoml";
77 version = "1.0.0.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson base containers old-locale parsec text time
1411 unordered-containers vector
@@ -24,4 +21,4 @@ mkDerivation {
2421 homepage = "https://github.com/cies/htoml";
2522 description = "Parser for TOML files";
2623 license = stdenv.lib.licenses.bsd3;
27−}
24+}
test/golden-test-cases/http-conduit.nix.golden+6−8
@@ -1,17 +1,15 @@
11{ mkDerivation, aeson, base, blaze-builder, bytestring
22, case-insensitive, conduit, conduit-extra, connection, cookie
3−, data-default-class, exceptions, fetchurl, hspec, http-client
3+, data-default-class, exceptions, hspec, http-client
44, http-client-tls, http-types, HUnit, lifted-base, monad-control
5−, mtl, network, resourcet, streaming-commons, temporary, text, time
6−, transformers, utf8-string, wai, wai-conduit, warp, warp-tls
5+, mtl, network, resourcet, stdenv, streaming-commons, temporary
6+, text, time, transformers, utf8-string, wai, wai-conduit, warp
7+, warp-tls
78}:
89mkDerivation {
910 pname = "http-conduit";
1011 version = "2.2.4";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
12+ sha256 = "deadbeef";
1513 libraryHaskellDepends = [
1614 aeson base bytestring conduit conduit-extra exceptions http-client
1715 http-client-tls http-types lifted-base monad-control mtl resourcet
@@ -28,4 +26,4 @@ mkDerivation {
2826 homepage = "http://www.yesodweb.com/book/http-conduit";
2927 description = "HTTP client package with conduit interface and HTTPS support";
3028 license = stdenv.lib.licenses.bsd3;
31−}
29+}
test/golden-test-cases/http-link-header.nix.golden+5−7
@@ -1,14 +1,12 @@
11{ mkDerivation, attoparsec, base, bytestring, bytestring-conversion
2−, criterion, directory, errors, fetchurl, hspec, hspec-attoparsec
3−, http-api-data, network-uri, QuickCheck, text, transformers
2+, criterion, directory, errors, hspec, hspec-attoparsec
3+, http-api-data, network-uri, QuickCheck, stdenv, text
4+, transformers
45}:
56mkDerivation {
67 pname = "http-link-header";
78 version = "1.0.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
9+ sha256 = "deadbeef";
1210 libraryHaskellDepends = [
1311 attoparsec base bytestring bytestring-conversion errors
1412 http-api-data network-uri text
@@ -22,4 +20,4 @@ mkDerivation {
2220 homepage = "https://github.com/myfreeweb/http-link-header";
2321 description = "A parser and writer for the HTTP Link header as specified in RFC 5988 \"Web Linking\"";
2422 license = stdenv.lib.licenses.publicDomain;
25−}
23+}
test/golden-test-cases/http-media.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, case-insensitive, containers
2−, fetchurl, QuickCheck, test-framework, test-framework-quickcheck2
2+, QuickCheck, stdenv, test-framework, test-framework-quickcheck2
33, utf8-string
44}:
55mkDerivation {
66 pname = "http-media";
77 version = "0.7.1.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base bytestring case-insensitive containers utf8-string
1411 ];
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/zmthy/http-media";
2017 description = "Processing HTTP Content-Type and Accept headers";
2118 license = stdenv.lib.licenses.mit;
22−}
19+}
test/golden-test-cases/hxt-charproperties.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "hxt-charproperties";
44 version = "9.2.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/UweSchmidt/hxt";
118 description = "Character properties and classes for XML and Unicode";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/hxt-expat.nix.golden+4−6
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, bytestring, fetchurl, hexpat, hxt }:
1+{ mkDerivation, base, bytestring, hexpat, hxt, stdenv }:
22mkDerivation {
33 pname = "hxt-expat";
44 version = "9.1.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring hexpat hxt ];
107 homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html";
118 description = "Expat parser for HXT";
129 license = "unknown";
13−}
10+ hydraPlatforms = stdenv.lib.platforms.none;
11+}
test/golden-test-cases/hxt-tagsoup.nix.golden+5−7
@@ -1,17 +1,15 @@
1−{ mkDerivation, base, fetchurl, hxt, hxt-charproperties
2−, hxt-unicode, tagsoup
1+{ mkDerivation, base, hxt, hxt-charproperties, hxt-unicode, stdenv
2+, tagsoup
33}:
44mkDerivation {
55 pname = "hxt-tagsoup";
66 version = "9.1.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base hxt hxt-charproperties hxt-unicode tagsoup
1310 ];
1411 homepage = "https://github.com/UweSchmidt/hxt";
1512 description = "TagSoup parser for HXT";
1613 license = "unknown";
17−}
14+ hydraPlatforms = stdenv.lib.platforms.none;
15+}
test/golden-test-cases/iconv.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, bytestring, fetchurl }:
1+{ mkDerivation, base, bytestring, stdenv }:
22mkDerivation {
33 pname = "iconv";
44 version = "0.4.1.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring ];
107 description = "String encoding conversion";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/incremental-parser.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, checkers, criterion, deepseq
2−, fetchurl, monoid-subclasses, QuickCheck, tasty, tasty-quickcheck
2+, monoid-subclasses, QuickCheck, stdenv, tasty, tasty-quickcheck
33, text
44}:
55mkDerivation {
66 pname = "incremental-parser";
77 version = "0.2.5.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [ base monoid-subclasses ];
1310 testHaskellDepends = [
1411 base checkers monoid-subclasses QuickCheck tasty tasty-quickcheck
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/blamario/incremental-parser";
2017 description = "Generic parser library capable of providing partial results from partial input";
2118 license = "GPL";
22−}
19+}
test/golden-test-cases/indentation-core.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, mtl }:
1+{ mkDerivation, base, mtl, stdenv }:
22mkDerivation {
33 pname = "indentation-core";
44 version = "0.0.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base mtl ];
107 homepage = "https://bitbucket.org/adamsmd/indentation";
118 description = "Indentation sensitive parsing combinators core library";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/indentation-parsec.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, fetchurl, indentation-core, mtl, parsec
2−, tasty, tasty-hunit
1+{ mkDerivation, base, indentation-core, mtl, parsec, stdenv, tasty
2+, tasty-hunit
33}:
44mkDerivation {
55 pname = "indentation-parsec";
66 version = "0.0.0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base indentation-core mtl parsec ];
129 testHaskellDepends = [ base parsec tasty tasty-hunit ];
1310 homepage = "https://bitbucket.org/adamsmd/indentation";
1411 description = "Indentation sensitive parsing combinators for Parsec";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/inline-c-cpp.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, hspec, inline-c, safe-exceptions
1+{ mkDerivation, base, hspec, inline-c, safe-exceptions, stdenv
22, template-haskell
33}:
44mkDerivation {
55 pname = "inline-c-cpp";
66 version = "0.2.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base inline-c safe-exceptions template-haskell
1310 ];
1411 testHaskellDepends = [ base hspec inline-c safe-exceptions ];
1512 description = "Lets you embed C++ code into Haskell";
1613 license = stdenv.lib.licenses.mit;
17−}
14+}
test/golden-test-cases/integer-logarithms.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, array, base, fetchurl, ghc-prim, integer-gmp
2−, QuickCheck, smallcheck, tasty, tasty-hunit, tasty-quickcheck
1+{ mkDerivation, array, base, ghc-prim, integer-gmp, QuickCheck
2+, smallcheck, stdenv, tasty, tasty-hunit, tasty-quickcheck
33, tasty-smallcheck
44}:
55mkDerivation {
66 pname = "integer-logarithms";
77 version = "1.0.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [ array base ghc-prim integer-gmp ];
1310 testHaskellDepends = [
1411 base QuickCheck smallcheck tasty tasty-hunit tasty-quickcheck
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/phadej/integer-logarithms";
1815 description = "Integer logarithms";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/intero.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, array, base, bytestring, containers, directory
2−, fetchurl, filepath, ghc, ghc-boot-th, ghc-paths, ghci, haskeline
3−, hspec, process, regex-compat, syb, temporary, time, transformers
2+, filepath, ghc, ghc-boot-th, ghc-paths, ghci, haskeline, hspec
3+, process, regex-compat, stdenv, syb, temporary, time, transformers
44, unix
55}:
66mkDerivation {
77 pname = "intero";
88 version = "0.1.24";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = false;
1411 isExecutable = true;
1512 enableSeparateDataOutput = true;
@@ -24,4 +21,4 @@ mkDerivation {
2421 homepage = "https://github.com/commercialhaskell/intero";
2522 description = "Complete interactive development program for Haskell";
2623 license = stdenv.lib.licenses.bsd3;
27−}
24+}
test/golden-test-cases/invariant.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, array, base, bifunctors, comonad, containers
2−, contravariant, fetchurl, ghc-prim, hspec, profunctors, QuickCheck
3−, semigroups, StateVar, stm, tagged, template-haskell
2+, contravariant, ghc-prim, hspec, profunctors, QuickCheck
3+, semigroups, StateVar, stdenv, stm, tagged, template-haskell
44, th-abstraction, transformers, transformers-compat
55, unordered-containers
66}:
77mkDerivation {
88 pname = "invariant";
99 version = "0.5";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 array base bifunctors comonad containers contravariant ghc-prim
1613 profunctors semigroups StateVar stm tagged template-haskell
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/nfrisby/invariant-functors";
2219 description = "Haskell98 invariant functors";
2320 license = stdenv.lib.licenses.bsd2;
24−}
21+}
test/golden-test-cases/io-machine.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, time }:
1+{ mkDerivation, base, stdenv, time }:
22mkDerivation {
33 pname = "io-machine";
44 version = "0.2.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base time ];
107 testHaskellDepends = [ base ];
118 homepage = "https://github.com/YoshikuniJujo/io-machine#readme";
129 description = "Easy I/O model to learn IO monad";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/io-streams-haproxy.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, attoparsec, base, bytestring, fetchurl, HUnit
2−, io-streams, network, test-framework, test-framework-hunit
1+{ mkDerivation, attoparsec, base, bytestring, HUnit, io-streams
2+, network, stdenv, test-framework, test-framework-hunit
33, transformers
44}:
55mkDerivation {
66 pname = "io-streams-haproxy";
77 version = "1.0.0.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 attoparsec base bytestring io-streams network transformers
1411 ];
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "http://snapframework.com/";
2017 description = "HAProxy protocol 1.5 support for io-streams";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/ip.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, attoparsec, base, bytestring, criterion
2−, doctest, fetchurl, hashable, HUnit, primitive, QuickCheck
3−, quickcheck-classes, test-framework, test-framework-hunit
2+, doctest, hashable, HUnit, primitive, QuickCheck
3+, quickcheck-classes, stdenv, test-framework, test-framework-hunit
44, test-framework-quickcheck2, text, vector
55}:
66mkDerivation {
77 pname = "ip";
88 version = "1.1.1";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 aeson attoparsec base bytestring hashable primitive text vector
1512 ];
@@ -24,4 +21,4 @@ mkDerivation {
2421 homepage = "https://github.com/andrewthad/haskell-ip#readme";
2522 description = "Library for IP and MAC addresses";
2623 license = stdenv.lib.licenses.bsd3;
27−}
24+}
test/golden-test-cases/iso639.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "iso639";
44 version = "0.1.0.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/HugoDaniel/iso639";
118 description = "ISO-639-1 language codes";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/iso8601-time.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, hspec, HUnit, time }:
1+{ mkDerivation, base, hspec, HUnit, stdenv, time }:
22mkDerivation {
33 pname = "iso8601-time";
44 version = "0.1.4";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base time ];
107 testHaskellDepends = [ base hspec HUnit time ];
118 homepage = "https://github.com/nh2/iso8601-time";
129 description = "Convert to/from the ISO 8601 time format";
1310 license = stdenv.lib.licenses.mit;
14−}
11+}
test/golden-test-cases/jmacro-rpc-happstack.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, aeson, base, blaze-html, bytestring, containers
2−, fetchurl, happstack-server, jmacro, jmacro-rpc, mtl
2+, happstack-server, jmacro, jmacro-rpc, mtl, stdenv
33}:
44mkDerivation {
55 pname = "jmacro-rpc-happstack";
66 version = "0.3.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base blaze-html bytestring containers happstack-server jmacro
1310 jmacro-rpc mtl
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://hub.darcs.net/gershomb/jmacro-rpc";
1613 description = "Happstack backend for jmacro-rpc";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/jmacro-rpc.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
2−, containers, contravariant, fetchurl, jmacro, mtl, scientific
3−, split, text, unordered-containers, vector
2+, containers, contravariant, jmacro, mtl, scientific, split, stdenv
3+, text, unordered-containers, vector
44}:
55mkDerivation {
66 pname = "jmacro-rpc";
77 version = "0.3.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson attoparsec base blaze-html bytestring containers
1411 contravariant jmacro mtl scientific split text unordered-containers
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "http://hub.darcs.net/gershomb/jmacro";
1815 description = "JSON-RPC clients and servers using JMacro, and evented client-server Reactive Programming";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/jose.nix.golden+6−10
@@ -1,17 +1,13 @@
11{ mkDerivation, aeson, attoparsec, base, base64-bytestring
2−, bytestring, concise, containers, cryptonite, fetchurl, hspec
3−, lens, memory, monad-time, mtl, network-uri, QuickCheck
4−, quickcheck-instances, safe, semigroups, tasty, tasty-hspec
5−, tasty-quickcheck, template-haskell, text, time
6−, unordered-containers, vector, x509
2+, bytestring, concise, containers, cryptonite, hspec, lens, memory
3+, monad-time, mtl, network-uri, QuickCheck, quickcheck-instances
4+, safe, semigroups, stdenv, tasty, tasty-hspec, tasty-quickcheck
5+, template-haskell, text, time, unordered-containers, vector, x509
76}:
87mkDerivation {
98 pname = "jose";
109 version = "0.6.0.3";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
10+ sha256 = "deadbeef";
1511 isLibrary = true;
1612 isExecutable = true;
1713 libraryHaskellDepends = [
@@ -31,4 +27,4 @@ mkDerivation {
3127 homepage = "https://github.com/frasertweedale/hs-jose";
3228 description = "Javascript Object Signing and Encryption and JSON Web Token library";
3329 license = stdenv.lib.licenses.asl20;
34−}
30+}
test/golden-test-cases/katip-elasticsearch.nix.golden+6−9
@@ -1,17 +1,14 @@
11{ mkDerivation, aeson, async, base, bloodhound, bytestring
22, containers, criterion, deepseq, enclosed-exceptions, exceptions
3−, fetchurl, http-client, http-types, katip, lens, lens-aeson
4−, quickcheck-instances, random, retry, scientific, stm, stm-chans
5−, tagged, tasty, tasty-hunit, tasty-quickcheck, text, time
6−, transformers, unordered-containers, uuid, vector
3+, http-client, http-types, katip, lens, lens-aeson
4+, quickcheck-instances, random, retry, scientific, stdenv, stm
5+, stm-chans, tagged, tasty, tasty-hunit, tasty-quickcheck, text
6+, time, transformers, unordered-containers, uuid, vector
77}:
88mkDerivation {
99 pname = "katip-elasticsearch";
1010 version = "0.4.0.3";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
11+ sha256 = "deadbeef";
1512 libraryHaskellDepends = [
1613 aeson async base bloodhound bytestring enclosed-exceptions
1714 exceptions http-client http-types katip retry scientific stm
@@ -30,4 +27,4 @@ mkDerivation {
3027 homepage = "https://github.com/Soostone/katip";
3128 description = "ElasticSearch scribe for the Katip logging framework";
3229 license = stdenv.lib.licenses.bsd3;
33−}
30+}
test/golden-test-cases/katip.nix.golden+6−9
@@ -1,9 +1,9 @@
11{ mkDerivation, aeson, async, auto-update, base, blaze-builder
22, bytestring, containers, criterion, deepseq, directory, either
3−, fetchurl, filepath, hostname, microlens, microlens-th
4−, monad-control, mtl, old-locale, quickcheck-instances, regex-tdfa
5−, resourcet, safe-exceptions, scientific, semigroups, stm
6−, string-conv, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
3+, filepath, hostname, microlens, microlens-th, monad-control, mtl
4+, old-locale, quickcheck-instances, regex-tdfa, resourcet
5+, safe-exceptions, scientific, semigroups, stdenv, stm, string-conv
6+, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
77, template-haskell, text, time, time-locale-compat, transformers
88, transformers-base, transformers-compat, unix
99, unordered-containers
@@ -11,10 +11,7 @@
1111mkDerivation {
1212 pname = "katip";
1313 version = "0.5.2.0";
14− src = fetchurl {
15− url = "http://example.org/";
16− sha256 = "abc";
17− };
14+ sha256 = "deadbeef";
1815 libraryHaskellDepends = [
1916 aeson async auto-update base bytestring containers either hostname
2017 microlens microlens-th monad-control mtl old-locale resourcet
@@ -35,4 +32,4 @@ mkDerivation {
3532 homepage = "https://github.com/Soostone/katip";
3633 description = "A structured logging framework";
3734 license = stdenv.lib.licenses.bsd3;
38−}
35+}
test/golden-test-cases/katydid.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, directory, fetchurl, filepath
2−, HUnit, hxt, json, mtl, parsec, regex-tdfa, tasty, tasty-hunit
1+{ mkDerivation, base, containers, directory, filepath, HUnit, hxt
2+, json, mtl, parsec, regex-tdfa, stdenv, tasty, tasty-hunit
33}:
44mkDerivation {
55 pname = "katydid";
66 version = "0.1.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/katydid/katydid-haskell";
2219 description = "A haskell implementation of Katydid";
2320 license = stdenv.lib.licenses.bsd3;
24−}
21+}
test/golden-test-cases/kawhi.nix.golden+6−9
@@ -1,15 +1,12 @@
1−{ mkDerivation, aeson, base, bytestring, exceptions, fetchurl
2−, http-client, http-conduit, http-types, mtl, safe, scientific
3−, smallcheck, tasty, tasty-hunit, tasty-quickcheck
4−, tasty-smallcheck, text
1+{ mkDerivation, aeson, base, bytestring, exceptions, http-client
2+, http-conduit, http-types, mtl, safe, scientific, smallcheck
3+, stdenv, tasty, tasty-hunit, tasty-quickcheck, tasty-smallcheck
4+, text
55}:
66mkDerivation {
77 pname = "kawhi";
88 version = "0.3.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 aeson base bytestring exceptions http-client http-conduit
1512 http-types mtl safe scientific text
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "https://github.com/thunky-monk/kawhi";
2320 description = "stats.NBA.com library";
2421 license = stdenv.lib.licenses.mit;
25−}
22+}
test/golden-test-cases/kraken.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, aeson, base, bytestring, fetchurl, http-client
2−, http-client-tls, mtl
1+{ mkDerivation, aeson, base, bytestring, http-client
2+, http-client-tls, mtl, stdenv
33}:
44mkDerivation {
55 pname = "kraken";
66 version = "0.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base bytestring http-client http-client-tls mtl
1310 ];
1411 description = "Kraken.io API client";
1512 license = stdenv.lib.licenses.mit;
16−}
13+}
test/golden-test-cases/l10n.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, text, time }:
1+{ mkDerivation, base, stdenv, text, time }:
22mkDerivation {
33 pname = "l10n";
44 version = "0.1.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base text time ];
107 homepage = "https://github.com/louispan/l10n#readme";
118 description = "Enables providing localization as typeclass instances in separate files";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/lambdabot-social-plugins.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, binary, bytestring, containers, fetchurl
2−, lambdabot-core, mtl, split, time
1+{ mkDerivation, base, binary, bytestring, containers
2+, lambdabot-core, mtl, split, stdenv, time
33}:
44mkDerivation {
55 pname = "lambdabot-social-plugins";
66 version = "5.1.0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base binary bytestring containers lambdabot-core mtl split time
1310 ];
1411 homepage = "https://wiki.haskell.org/Lambdabot";
1512 description = "Social plugins for Lambdabot";
1613 license = "GPL";
17−}
14+}
test/golden-test-cases/lazy-csv.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, bytestring, fetchurl }:
1+{ mkDerivation, base, bytestring, stdenv }:
22mkDerivation {
33 pname = "lazy-csv";
44 version = "0.5.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base bytestring ];
@@ -13,4 +10,4 @@ mkDerivation {
1310 homepage = "http://code.haskell.org/lazy-csv";
1411 description = "Efficient lazy parsers for CSV (comma-separated values)";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/lens-aeson.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
2−, cabal-doctest, doctest, fetchurl, generic-deriving, lens
3−, scientific, semigroups, simple-reflect, text
4−, unordered-containers, vector
2+, cabal-doctest, doctest, generic-deriving, lens, scientific
3+, semigroups, simple-reflect, stdenv, text, unordered-containers
4+, vector
55}:
66mkDerivation {
77 pname = "lens-aeson";
88 version = "1.0.2";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 setupHaskellDepends = [ base Cabal cabal-doctest ];
1411 libraryHaskellDepends = [
1512 aeson attoparsec base bytestring lens scientific text
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "http://github.com/lens/lens-aeson/";
2219 description = "Law-abiding lenses for aeson";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/lens.nix.golden+6−9
@@ -1,10 +1,10 @@
11{ mkDerivation, array, base, base-orphans, bifunctors, bytestring
22, Cabal, cabal-doctest, call-stack, comonad, containers
33, contravariant, criterion, deepseq, directory, distributive
4−, doctest, exceptions, fetchurl, filepath, free, generic-deriving
5−, ghc-prim, hashable, HUnit, kan-extensions, mtl, nats, parallel
6−, profunctors, QuickCheck, reflection, semigroupoids, semigroups
7−, simple-reflect, tagged, template-haskell, test-framework
4+, doctest, exceptions, filepath, free, generic-deriving, ghc-prim
5+, hashable, HUnit, kan-extensions, mtl, nats, parallel, profunctors
6+, QuickCheck, reflection, semigroupoids, semigroups, simple-reflect
7+, stdenv, tagged, template-haskell, test-framework
88, test-framework-hunit, test-framework-quickcheck2
99, test-framework-th, text, th-abstraction, transformers
1010, transformers-compat, unordered-containers, vector, void
@@ -12,10 +12,7 @@
1212mkDerivation {
1313 pname = "lens";
1414 version = "4.15.4";
15− src = fetchurl {
16− url = "http://example.org/";
17− sha256 = "abc";
18− };
15+ sha256 = "deadbeef";
1916 setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
2017 libraryHaskellDepends = [
2118 array base base-orphans bifunctors bytestring call-stack comonad
@@ -39,4 +36,4 @@ mkDerivation {
3936 homepage = "http://github.com/ekmett/lens/";
4037 description = "Lenses, Folds and Traversals";
4138 license = stdenv.lib.licenses.bsd2;
42−}
39+}
test/golden-test-cases/libgit.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, mtl, process }:
1+{ mkDerivation, base, mtl, process, stdenv }:
22mkDerivation {
33 pname = "libgit";
44 version = "0.3.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base mtl process ];
107 homepage = "https://github.com/vincenthz/hs-libgit";
118 description = "Simple Git Wrapper";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/librato.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, aeson, attoparsec, base, bytestring, either
2−, fetchurl, http-client, http-conduit, http-types, mtl, resourcet
2+, http-client, http-conduit, http-types, mtl, resourcet, stdenv
33, text, unordered-containers, uri-templater, vector
44}:
55mkDerivation {
66 pname = "librato";
77 version = "0.2.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson attoparsec base bytestring either http-client http-conduit
1411 http-types mtl resourcet text unordered-containers uri-templater
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/SaneTracker/librato";
1815 description = "Bindings to the Librato API";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/lifted-async.nix.golden+5−8
@@ -1,14 +1,11 @@
1−{ mkDerivation, async, base, constraints, criterion, deepseq
2−, fetchurl, HUnit, lifted-base, monad-control, mtl, tasty
3−, tasty-hunit, tasty-th, transformers-base
1+{ mkDerivation, async, base, constraints, criterion, deepseq, HUnit
2+, lifted-base, monad-control, mtl, stdenv, tasty, tasty-hunit
3+, tasty-th, transformers-base
44}:
55mkDerivation {
66 pname = "lifted-async";
77 version = "0.9.3.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 async base constraints lifted-base monad-control transformers-base
1411 ];
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/maoe/lifted-async";
2118 description = "Run lifted IO operations asynchronously and wait for their results";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/lmdb.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, array, base, fetchurl, lmdb }:
1+{ mkDerivation, array, base, lmdb, stdenv }:
22mkDerivation {
33 pname = "lmdb";
44 version = "0.2.5";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ array base ];
107 librarySystemDepends = [ lmdb ];
118 homepage = "http://github.com/dmbarbour/haskell-lmdb";
129 description = "Lightning MDB bindings";
1310 license = stdenv.lib.licenses.bsd2;
14−}
11+}
test/golden-test-cases/logging-effect-extra-file.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, logging-effect, template-haskell
1+{ mkDerivation, base, logging-effect, stdenv, template-haskell
22, wl-pprint-text
33}:
44mkDerivation {
55 pname = "logging-effect-extra-file";
66 version = "1.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/jship/logging-effect-extra#readme";
1815 description = "TH splices to augment log messages with file info";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/lucid.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bifunctors, blaze-builder, bytestring
2−, containers, criterion, deepseq, fetchurl, hashable, hspec, HUnit
3−, mmorph, mtl, parsec, text, transformers, unordered-containers
2+, containers, criterion, deepseq, hashable, hspec, HUnit, mmorph
3+, mtl, parsec, stdenv, text, transformers, unordered-containers
44}:
55mkDerivation {
66 pname = "lucid";
77 version = "2.9.9";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base blaze-builder bytestring containers hashable mmorph mtl text
1411 transformers unordered-containers
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "https://github.com/chrisdone/lucid";
2320 description = "Clear to write, read and edit DSL for HTML";
2421 license = stdenv.lib.licenses.bsd3;
25−}
22+}
test/golden-test-cases/mainland-pretty.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, containers, fetchurl, srcloc, text
1+{ mkDerivation, base, containers, srcloc, stdenv, text
22, transformers
33}:
44mkDerivation {
55 pname = "mainland-pretty";
66 version = "0.6.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers srcloc text transformers
1310 ];
1411 homepage = "https://github.com/mainland/mainland-pretty";
1512 description = "Pretty printing designed for printing source code";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/matrices.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, criterion, deepseq, fetchurl, primitive
2−, tasty, tasty-hunit, tasty-quickcheck, vector
1+{ mkDerivation, base, criterion, deepseq, primitive, stdenv, tasty
2+, tasty-hunit, tasty-quickcheck, vector
33}:
44mkDerivation {
55 pname = "matrices";
66 version = "0.4.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base deepseq primitive vector ];
129 testHaskellDepends = [
1310 base tasty tasty-hunit tasty-quickcheck vector
@@ -15,4 +12,4 @@ mkDerivation {
1512 benchmarkHaskellDepends = [ base criterion vector ];
1613 description = "native matrix based on vector";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/median-stream.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, heap, QuickCheck }:
1+{ mkDerivation, base, heap, QuickCheck, stdenv }:
22mkDerivation {
33 pname = "median-stream";
44 version = "0.7.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base heap ];
107 testHaskellDepends = [ base QuickCheck ];
118 homepage = "https://github.com/caneroj1/median-stream#readme";
129 description = "Constant-time queries for the median of a stream of numeric data";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/megaparsec.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, base, bytestring, case-insensitive, containers
2−, criterion, deepseq, fetchurl, hspec, hspec-expectations, mtl
3−, parser-combinators, QuickCheck, scientific, text, transformers
4−, weigh
2+, criterion, deepseq, hspec, hspec-expectations, mtl
3+, parser-combinators, QuickCheck, scientific, stdenv, text
4+, transformers, weigh
55}:
66mkDerivation {
77 pname = "megaparsec";
88 version = "6.3.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 base bytestring case-insensitive containers deepseq mtl
1512 parser-combinators scientific text transformers
@@ -22,4 +19,4 @@ mkDerivation {
2219 homepage = "https://github.com/mrkkrp/megaparsec";
2320 description = "Monadic parser combinators";
2421 license = stdenv.lib.licenses.bsd2;
25−}
22+}
test/golden-test-cases/mersenne-random.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, old-time }:
1+{ mkDerivation, base, old-time, stdenv }:
22mkDerivation {
33 pname = "mersenne-random";
44 version = "1.0.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base old-time ];
107 homepage = "http://code.haskell.org/~dons/code/mersenne-random";
118 description = "Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/messagepack.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, cereal, containers, deepseq
2−, fetchurl, QuickCheck, test-framework, test-framework-quickcheck2
2+, QuickCheck, stdenv, test-framework, test-framework-quickcheck2
33, test-framework-th
44}:
55mkDerivation {
66 pname = "messagepack";
77 version = "0.5.4";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base bytestring cereal containers deepseq
1411 ];
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "https://github.com/rodrigosetti/messagepack";
2017 description = "Serialize instance for Message Pack Object";
2118 license = stdenv.lib.licenses.mit;
22−}
19+}
test/golden-test-cases/microlens-ghc.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, array, base, bytestring, containers, fetchurl
2−, microlens, transformers
1+{ mkDerivation, array, base, bytestring, containers, microlens
2+, stdenv, transformers
33}:
44mkDerivation {
55 pname = "microlens-ghc";
66 version = "0.4.8.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 array base bytestring containers microlens transformers
1310 ];
1411 homepage = "http://github.com/aelve/microlens";
1512 description = "microlens + array, bytestring, containers, transformers";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/microlens.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "microlens";
44 version = "0.4.8.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "http://github.com/aelve/microlens";
118 description = "A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this.";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/minio-hs.nix.golden+7−11
@@ -1,20 +1,16 @@
11{ mkDerivation, aeson, async, base, base64-bytestring, bytestring
22, case-insensitive, conduit, conduit-combinators, conduit-extra
33, containers, cryptonite, cryptonite-conduit, data-default
4−, directory, exceptions, fetchurl, filepath, http-client
5−, http-conduit, http-types, lifted-async, lifted-base, memory
6−, monad-control, protolude, QuickCheck, resourcet, tasty
7−, tasty-hunit, tasty-quickcheck, tasty-smallcheck, temporary, text
8−, text-format, time, transformers, transformers-base, vector
9−, xml-conduit
4+, directory, exceptions, filepath, http-client, http-conduit
5+, http-types, lifted-async, lifted-base, memory, monad-control
6+, protolude, QuickCheck, resourcet, stdenv, tasty, tasty-hunit
7+, tasty-quickcheck, tasty-smallcheck, temporary, text, text-format
8+, time, transformers, transformers-base, vector, xml-conduit
109}:
1110mkDerivation {
1211 pname = "minio-hs";
1312 version = "0.3.2";
14− src = fetchurl {
15− url = "http://example.org/";
16− sha256 = "abc";
17− };
13+ sha256 = "deadbeef";
1814 libraryHaskellDepends = [
1915 aeson async base base64-bytestring bytestring case-insensitive
2016 conduit conduit-combinators conduit-extra containers cryptonite
@@ -35,4 +31,4 @@ mkDerivation {
3531 homepage = "https://github.com/minio/minio-hs#readme";
3632 description = "A Minio Haskell Library for Amazon S3 compatible cloud storage";
3733 license = stdenv.lib.licenses.asl20;
38−}
34+}
test/golden-test-cases/mmorph.nix.golden+3−6
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, fetchurl, mtl, transformers
1+{ mkDerivation, base, mtl, stdenv, transformers
22, transformers-compat
33}:
44mkDerivation {
55 pname = "mmorph";
66 version = "1.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base mtl transformers transformers-compat
1310 ];
1411 description = "Monad morphisms";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/mnist-idx.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, binary, bytestring, directory, fetchurl
2−, hspec, vector
1+{ mkDerivation, base, binary, bytestring, directory, hspec, stdenv
2+, vector
33}:
44mkDerivation {
55 pname = "mnist-idx";
66 version = "0.1.2.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base binary bytestring vector ];
129 testHaskellDepends = [ base binary directory hspec vector ];
1310 homepage = "https://github.com/kryoxide/mnist-idx/";
1411 description = "Read and write IDX data that is used in e.g. the MNIST database.";
1512 license = stdenv.lib.licenses.lgpl3;
16−}
13+}
test/golden-test-cases/mole.nix.golden+7−10
@@ -1,17 +1,14 @@
11{ mkDerivation, attoparsec, base, base64-bytestring, bytestring
2−, containers, cryptohash, css-syntax, directory, fetchurl
3−, filemanip, filepath, fsnotify, hspec, hspec-smallcheck, kraken
4−, mtl, network-uri, optparse-applicative, process, smallcheck
5−, snap-core, snap-server, stm, tagsoup, text, time, transformers
6−, unix, unordered-containers, vector
2+, containers, cryptohash, css-syntax, directory, filemanip
3+, filepath, fsnotify, hspec, hspec-smallcheck, kraken, mtl
4+, network-uri, optparse-applicative, process, smallcheck, snap-core
5+, snap-server, stdenv, stm, tagsoup, text, time, transformers, unix
6+, unordered-containers, vector
77}:
88mkDerivation {
99 pname = "mole";
1010 version = "0.0.6";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
11+ sha256 = "deadbeef";
1512 isLibrary = false;
1613 isExecutable = true;
1714 executableHaskellDepends = [
@@ -26,4 +23,4 @@ mkDerivation {
2623 ];
2724 description = "A glorified string replacement tool";
2825 license = stdenv.lib.licenses.mit;
29−}
26+}
test/golden-test-cases/monad-products.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, semigroupoids }:
1+{ mkDerivation, base, semigroupoids, stdenv }:
22mkDerivation {
33 pname = "monad-products";
44 version = "4.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base semigroupoids ];
107 homepage = "http://github.com/ekmett/monad-products";
118 description = "Monad products";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/monadcryptorandom.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, crypto-api, exceptions, fetchurl
2−, mtl, tagged, transformers, transformers-compat
1+{ mkDerivation, base, bytestring, crypto-api, exceptions, mtl
2+, stdenv, tagged, transformers, transformers-compat
33}:
44mkDerivation {
55 pname = "monadcryptorandom";
66 version = "0.7.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring crypto-api exceptions mtl tagged transformers
1310 transformers-compat
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/TomMD/monadcryptorandom";
1613 description = "A monad for using CryptoRandomGen";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/monadloc.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, template-haskell, transformers }:
1+{ mkDerivation, base, stdenv, template-haskell, transformers }:
22mkDerivation {
33 pname = "monadloc";
44 version = "0.7.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base template-haskell transformers ];
107 homepage = "http://github.com/pepeiborra/monadloc";
118 description = "A class for monads which can keep a monadic call trace";
129 license = stdenv.lib.licenses.publicDomain;
13−}
10+}
test/golden-test-cases/mongoDB.nix.golden+5−8
@@ -1,17 +1,14 @@
11{ mkDerivation, array, base, base16-bytestring, base64-bytestring
22, binary, bson, bytestring, conduit, conduit-extra, containers
3−, criterion, cryptohash, data-default-class, fetchurl, hashtables
4−, hspec, lifted-base, monad-control, mtl, network, nonce
5−, old-locale, parsec, pureMD5, random, random-shuffle, resourcet
3+, criterion, cryptohash, data-default-class, hashtables, hspec
4+, lifted-base, monad-control, mtl, network, nonce, old-locale
5+, parsec, pureMD5, random, random-shuffle, resourcet, stdenv
66, tagged, text, time, tls, transformers, transformers-base
77}:
88mkDerivation {
99 pname = "mongoDB";
1010 version = "2.3.0.1";
11− src = fetchurl {
12− url = "http://example.org/";
13− sha256 = "abc";
14− };
11+ sha256 = "deadbeef";
1512 libraryHaskellDepends = [
1613 array base base16-bytestring base64-bytestring binary bson
1714 bytestring conduit conduit-extra containers cryptohash
@@ -29,4 +26,4 @@ mkDerivation {
2926 homepage = "https://github.com/mongodb-haskell/mongodb";
3027 description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS";
3128 license = stdenv.lib.licenses.asl20;
32−}
29+}
test/golden-test-cases/monoid-extras.nix.golden+4−7
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, criterion, fetchurl, groups, semigroupoids
2−, semigroups
1+{ mkDerivation, base, criterion, groups, semigroupoids, semigroups
2+, stdenv
33}:
44mkDerivation {
55 pname = "monoid-extras";
66 version = "0.4.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base groups semigroupoids semigroups ];
129 benchmarkHaskellDepends = [ base criterion ];
1310 description = "Various extra monoid-related definitions and utilities";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/mwc-random-monad.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, fetchurl, monad-primitive, mwc-random
2−, primitive, transformers, vector
1+{ mkDerivation, base, monad-primitive, mwc-random, primitive
2+, stdenv, transformers, vector
33}:
44mkDerivation {
55 pname = "mwc-random-monad";
66 version = "0.7.3.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base monad-primitive mwc-random primitive transformers vector
1310 ];
1411 description = "Monadic interface for mwc-random";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/mwc-random.nix.golden+4−12
@@ -1,23 +1,15 @@
1−{ mkDerivation, base, fetchurl, HUnit, math-functions, primitive
2−, QuickCheck, statistics, test-framework, test-framework-hunit
3−, test-framework-quickcheck2, time, vector
1+{ mkDerivation, base, math-functions, primitive, stdenv, time
2+, vector
43}:
54mkDerivation {
65 pname = "mwc-random";
76 version = "0.13.6.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 base math-functions primitive time vector
1410 ];
15− testHaskellDepends = [
16− base HUnit QuickCheck statistics test-framework
17− test-framework-hunit test-framework-quickcheck2 vector
18− ];
1911 doCheck = false;
2012 homepage = "https://github.com/bos/mwc-random";
2113 description = "Fast, high quality pseudo random number generation";
2214 license = stdenv.lib.licenses.bsd3;
23−}
15+}
test/golden-test-cases/nanospec.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, hspec, silently }:
1+{ mkDerivation, base, hspec, silently, stdenv }:
22mkDerivation {
33 pname = "nanospec";
44 version = "0.2.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 testHaskellDepends = [ base hspec silently ];
118 description = "A lightweight implementation of a subset of Hspec's API";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/netpbm.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, attoparsec, attoparsec-binary, base, bytestring
2−, criterion, fetchurl, hspec, HUnit, storable-record
2+, criterion, hspec, HUnit, stdenv, storable-record
33, unordered-containers, vector, vector-th-unbox
44}:
55mkDerivation {
66 pname = "netpbm";
77 version = "1.0.2";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 attoparsec attoparsec-binary base bytestring storable-record
1411 unordered-containers vector vector-th-unbox
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "https://github.com/nh2/haskell-netpbm";
1916 description = "Loading PBM, PGM, PPM image files";
2017 license = stdenv.lib.licenses.mit;
21−}
18+}
test/golden-test-cases/network-protocol-xmpp.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, gnuidn, gnutls, gsasl
2−, libxml-sax, monads-tf, network, text, transformers, xml-types
1+{ mkDerivation, base, bytestring, gnuidn, gnutls, gsasl, libxml-sax
2+, monads-tf, network, stdenv, text, transformers, xml-types
33}:
44mkDerivation {
55 pname = "network-protocol-xmpp";
66 version = "0.4.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring gnuidn gnutls gsasl libxml-sax monads-tf network
1310 text transformers xml-types
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://john-millikin.com/software/haskell-xmpp/";
1613 description = "Client library for the XMPP protocol";
1714 license = stdenv.lib.licenses.gpl3;
18−}
15+}
test/golden-test-cases/network-transport-tcp.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, base, bytestring, containers, data-accessor
2−, fetchurl, network, network-transport, network-transport-tests
2+, network, network-transport, network-transport-tests, stdenv
33}:
44mkDerivation {
55 pname = "network-transport-tcp";
66 version = "0.6.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring containers data-accessor network network-transport
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "http://haskell-distributed.github.com";
1815 description = "TCP instantiation of Network.Transport";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/nix-paths.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, nix, process }:
1+{ mkDerivation, base, nix, process, stdenv }:
22mkDerivation {
33 pname = "nix-paths";
44 version = "1.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base process ];
107 libraryToolDepends = [ nix ];
118 homepage = "https://github.com/peti/nix-paths";
129 description = "Knowledge of Nix's installation directories";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/nvim-hs.nix.golden+7−9
@@ -1,9 +1,9 @@
11{ mkDerivation, ansi-wl-pprint, base, bytestring, cereal
22, cereal-conduit, conduit, conduit-extra, containers, data-default
3−, deepseq, directory, dyre, exceptions, fetchurl, filepath
4−, foreign-store, hslogger, hspec, hspec-discover, HUnit
5−, lifted-base, megaparsec, messagepack, monad-control, mtl, network
6−, optparse-applicative, process, QuickCheck, resourcet, setenv, stm
3+, deepseq, directory, dyre, exceptions, filepath, foreign-store
4+, hslogger, hspec, hspec-discover, HUnit, lifted-base, megaparsec
5+, messagepack, monad-control, mtl, network, optparse-applicative
6+, process, QuickCheck, resourcet, setenv, stdenv, stm
77, streaming-commons, template-haskell, text, time
88, time-locale-compat, transformers, transformers-base, utf8-string
99, void
@@ -11,10 +11,7 @@
1111mkDerivation {
1212 pname = "nvim-hs";
1313 version = "0.2.5";
14− src = fetchurl {
15− url = "http://example.org/";
16− sha256 = "abc";
17− };
14+ sha256 = "deadbeef";
1815 isLibrary = true;
1916 isExecutable = true;
2017 libraryHaskellDepends = [
@@ -35,7 +32,8 @@ mkDerivation {
3532 template-haskell text time time-locale-compat transformers
3633 transformers-base utf8-string
3734 ];
35+ testToolDepends = [ hspec-discover ];
3836 homepage = "https://github.com/neovimhaskell/nvim-hs";
3937 description = "Haskell plugin backend for neovim";
4038 license = stdenv.lib.licenses.asl20;
41−}
39+}
test/golden-test-cases/once.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, containers, fetchurl, hashable
1+{ mkDerivation, base, containers, hashable, stdenv
22, template-haskell, unordered-containers
33}:
44mkDerivation {
55 pname = "once";
66 version = "0.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers hashable template-haskell unordered-containers
1310 ];
1411 homepage = "https://anonscm.debian.org/cgit/users/kaction-guest/haskell-once.git";
1512 description = "memoization for IO actions and functions";
1613 license = stdenv.lib.licenses.gpl3;
17−}
14+}
test/golden-test-cases/one-liner.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bifunctors, contravariant, fetchurl, ghc-prim
2−, HUnit, profunctors, tagged, transformers
1+{ mkDerivation, base, bifunctors, contravariant, ghc-prim, HUnit
2+, profunctors, stdenv, tagged, transformers
33}:
44mkDerivation {
55 pname = "one-liner";
66 version = "0.9.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bifunctors contravariant ghc-prim profunctors tagged
1310 transformers
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/sjoerdvisscher/one-liner";
1714 description = "Constraint-based generics";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/online.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, foldl, numhask, protolude, tdigest
1+{ mkDerivation, base, foldl, numhask, protolude, stdenv, tdigest
22, vector, vector-algorithms
33}:
44mkDerivation {
55 pname = "online";
66 version = "0.2.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base foldl numhask protolude tdigest vector vector-algorithms
1310 ];
1411 homepage = "https://github.com/tonyday567/online";
1512 description = "online statistics";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/opencv.cabalnew file+263
@@ -0,0 +1,263 @@
1+name: opencv
2+version: 0.0.2.1
3+homepage: https://github.com/LumiGuide/haskell-opencv
4+bug-reports: https://github.com/LumiGuide/haskell-opencv/issues
5+license: BSD3
6+license-file: LICENSE
7+author: Roel van Dijk <roel@lambdacube.nl>, Bas van Dijk <v.dijk.bas@gmail.com>
8+maintainer: Roel van Dijk <roel@lambdacube.nl>, Bas van Dijk <v.dijk.bas@gmail.com>
9+build-type: Custom
10+cabal-version: >=1.23
11+category: AI, Graphics
12+synopsis: Haskell binding to OpenCV-3.x
13+description: <<https://raw.githubusercontent.com/LumiGuide/haskell-opencv/master/data/haskell-opencv-logo-200x82.png>>
14+ .
15+ This is a Haskell library providing a binding to OpenCV-3.x.
16+ It binds directly with the C++ API using the @inline-c@ Haskell library.
17+ .
18+ The library is far from complete but the framework is there to easily
19+ bind missing functionality.
20+ .
21+ Note that the OpenCV contrib modules are provided by
22+ <http://hackage.haskell.org/package/opencv-extra opencv-extra>.
23+ .
24+ Make sure to checkout the
25+ <https://github.com/LumiGuide/haskell-opencv/tree/master/opencv-examples opencv-examples>.
26+
27+extra-source-files:
28+ CHANGELOG.md
29+ data/*.png
30+ data/*.jpg
31+ data/*.mp4
32+ data/*.xml
33+
34+extra-doc-files:
35+ doc/generated/*.png
36+ doc/generated/examples/*.png
37+ doc/generated/examples/*.gif
38+ doc/color_conversions.png
39+
40+source-repository head
41+ type: git
42+ location: git://github.com/LumiGuide/haskell-opencv.git
43+ subdir: opencv
44+
45+flag internal-documentation
46+ description: Enables documentation generation for internal modules.
47+ default: False
48+ manual: True
49+
50+custom-setup
51+ setup-depends: base, Cabal >= 1.23
52+
53+library
54+ hs-source-dirs: src
55+ include-dirs: include
56+ install-includes:
57+ haskell_opencv_matx_typedefs.hpp
58+ hsc_macros.hpp
59+ namespace.hpp
60+ orb.hpp
61+ simple_blob_detector.hpp
62+ termcriteria.hpp
63+ video_motion_analysis.hpp
64+
65+ cc-options: -Wall -std=c++11
66+ ghc-options: -Wall -fwarn-incomplete-patterns -funbox-strict-fields
67+ if flag(internal-documentation)
68+ cpp-options: -DENABLE_INTERNAL_DOCUMENTATION
69+
70+ build-depends:
71+ aeson >= 0.9.0.1
72+ , base >= 4.8 && <5
73+ , base64-bytestring >= 1.0.0.1
74+ , bindings-DSL >= 1.0.23
75+ , bytestring >= 0.10.6
76+ , containers >= 0.5.6.2
77+ , data-default >= 0.7.1.1
78+ , deepseq >= 1.4.1.1
79+ , inline-c >= 0.6
80+ , inline-c-cpp >= 0.2.1
81+ , JuicyPixels >= 3.2.8.1
82+ , linear >= 1.20.4
83+ , primitive >= 0.6.1
84+ , repa >= 3.4.0.2
85+ , template-haskell >= 2.10
86+ , text >= 1.2.2.1
87+ , transformers >= 0.4.2
88+ , vector >= 0.11
89+
90+ exposed-modules:
91+ OpenCV
92+ OpenCV.Calib3d
93+ OpenCV.Core.ArrayOps
94+ OpenCV.Core.Types
95+ OpenCV.Core.Types.Mat
96+ OpenCV.Core.Types.Mat.HMat
97+ OpenCV.Core.Types.Mat.Repa
98+ OpenCV.Core.Types.Matx
99+ OpenCV.Core.Types.Point
100+ OpenCV.Core.Types.Rect
101+ OpenCV.Core.Types.Size
102+ OpenCV.Core.Types.Vec
103+ OpenCV.Exception
104+ OpenCV.Features2d
105+ OpenCV.HighGui
106+ OpenCV.ImgCodecs
107+ OpenCV.ImgProc.ColorMaps
108+ OpenCV.ImgProc.Drawing
109+ OpenCV.ImgProc.FeatureDetection
110+ OpenCV.ImgProc.GeometricImgTransform
111+ OpenCV.ImgProc.ImgFiltering
112+ OpenCV.ImgProc.MiscImgTransform
113+ OpenCV.ImgProc.MiscImgTransform.ColorCodes
114+ OpenCV.ImgProc.ObjectDetection
115+ OpenCV.ImgProc.StructuralAnalysis
116+ OpenCV.ImgProc.Types
117+ OpenCV.ImgProc.CascadeClassifier
118+ OpenCV.JSON
119+ OpenCV.Photo
120+ OpenCV.TypeLevel
121+ OpenCV.Unsafe
122+ OpenCV.Video
123+ OpenCV.Video.MotionAnalysis
124+ OpenCV.VideoIO.Types
125+ OpenCV.VideoIO.VideoCapture
126+ OpenCV.VideoIO.VideoWriter
127+
128+ OpenCV.Internal
129+ OpenCV.Internal.Mutable
130+ OpenCV.Internal.C.Inline
131+ OpenCV.Internal.C.PlacementNew
132+ OpenCV.Internal.C.PlacementNew.TH
133+ OpenCV.Internal.C.Types
134+ OpenCV.Internal.Calib3d.Constants
135+ OpenCV.Internal.Core.ArrayOps
136+ OpenCV.Internal.Core.Types
137+ OpenCV.Internal.Core.Types.Constants
138+ OpenCV.Internal.Core.Types.Mat
139+ OpenCV.Internal.Core.Types.Mat.Depth
140+ OpenCV.Internal.Core.Types.Mat.HMat
141+ OpenCV.Internal.Core.Types.Mat.Marshal
142+ OpenCV.Internal.Core.Types.Mat.ToFrom
143+ OpenCV.Internal.Core.Types.Matx
144+ OpenCV.Internal.Core.Types.Matx.TH
145+ OpenCV.Internal.Core.Types.Point
146+ OpenCV.Internal.Core.Types.Point.TH
147+ OpenCV.Internal.Core.Types.Rect
148+ OpenCV.Internal.Core.Types.Rect.TH
149+ OpenCV.Internal.Core.Types.Size
150+ OpenCV.Internal.Core.Types.Size.TH
151+ OpenCV.Internal.Core.Types.Vec
152+ OpenCV.Internal.Core.Types.Vec.TH
153+ OpenCV.Internal.Exception
154+ OpenCV.Internal.ImgCodecs
155+ OpenCV.Internal.ImgProc.MiscImgTransform
156+ OpenCV.Internal.ImgProc.MiscImgTransform.TypeLevel
157+ OpenCV.Internal.ImgProc.MiscImgTransform.ColorCodes
158+ OpenCV.Internal.ImgProc.Types
159+ OpenCV.Internal.Photo.Constants
160+ OpenCV.Internal.VideoIO.Constants
161+ OpenCV.Internal.VideoIO.Types
162+ OpenCV.Juicy
163+
164+ default-extensions:
165+ BangPatterns
166+ DataKinds
167+ FlexibleContexts
168+ FlexibleInstances
169+ LambdaCase
170+ OverloadedStrings
171+ PackageImports
172+ PolyKinds
173+ ScopedTypeVariables
174+ TupleSections
175+ TypeFamilies
176+ TypeOperators
177+
178+ default-language: Haskell2010
179+ pkgconfig-depends: opencv >= 3.0.0
180+ extra-libraries: stdc++
181+
182+test-suite doc-images-opencv
183+ type: exitcode-stdio-1.0
184+ hs-source-dirs: doc
185+ main-is: images.hs
186+ other-modules:
187+ ExampleExtractor
188+ Language.Haskell.Meta.Syntax.Translate
189+ default-language: Haskell2010
190+ ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -rtsopts
191+ build-depends:
192+ base >= 4.8 && < 5
193+ , bytestring >= 0.10.6
194+ , containers >= 0.5.6.2
195+ , data-default >= 0.7.1.1
196+ , directory >= 1.2.2
197+ , Glob >= 0.9
198+ , haskell-src-exts >= 1.18.2
199+ , JuicyPixels >= 3.2.8.1
200+ , linear >= 1.20.4
201+ , opencv
202+ , primitive >= 0.6.1
203+ , template-haskell >= 2.10
204+ , text >= 1.2.2.1
205+ , transformers >= 0.4.2
206+ , vector >= 0.11
207+
208+ default-extensions:
209+ BangPatterns
210+ DataKinds
211+ LambdaCase
212+ OverloadedStrings
213+ PackageImports
214+ PolyKinds
215+ ScopedTypeVariables
216+ TupleSections
217+ TypeFamilies
218+ TypeOperators
219+
220+test-suite test-opencv
221+ type: exitcode-stdio-1.0
222+ hs-source-dirs: test
223+ main-is: test.hs
224+ default-language: Haskell2010
225+ ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -rtsopts
226+ build-depends:
227+ base >= 4.8 && < 5
228+ , bytestring >= 0.10.6
229+ , lens >= 4.13
230+ , linear >= 1.20.4
231+ , opencv
232+ , QuickCheck >= 2.10.1
233+ , repa >= 3.4.0.2
234+ , tasty >= 0.11.0.2
235+ , tasty-hunit >= 0.9.2
236+ , tasty-quickcheck >= 0.8.4
237+ , transformers >= 0.4.2
238+ , vector >= 0.11
239+
240+ default-extensions:
241+ DataKinds
242+ FlexibleContexts
243+ PackageImports
244+ RankNTypes
245+ ScopedTypeVariables
246+ TypeOperators
247+
248+benchmark bench-opencv
249+ type: exitcode-stdio-1.0
250+ hs-source-dirs: bench
251+ main-is: bench.hs
252+ default-language: Haskell2010
253+ ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -rtsopts
254+ build-depends:
255+ base >= 4.8 && < 5
256+ , bytestring >= 0.10.6
257+ , criterion >= 1.1.1
258+ , opencv
259+ , repa >= 3.4.0.2
260+
261+ default-extensions:
262+ DataKinds
263+ PackageImports
test/golden-test-cases/opencv.nix.goldennew file+30
@@ -0,0 +1,30 @@
1+{ mkDerivation, aeson, base, base64-bytestring, bindings-DSL
2+, bytestring, Cabal, containers, criterion, data-default, deepseq
3+, directory, Glob, haskell-src-exts, inline-c, inline-c-cpp
4+, JuicyPixels, lens, linear, opencv3, primitive, QuickCheck, repa
5+, stdenv, tasty, tasty-hunit, tasty-quickcheck, template-haskell
6+, text, transformers, vector
7+}:
8+mkDerivation {
9+ pname = "opencv";
10+ version = "0.0.2.1";
11+ sha256 = "deadbeef";
12+ setupHaskellDepends = [ base Cabal ];
13+ libraryHaskellDepends = [
14+ aeson base base64-bytestring bindings-DSL bytestring containers
15+ data-default deepseq inline-c inline-c-cpp JuicyPixels linear
16+ primitive repa template-haskell text transformers vector
17+ ];
18+ libraryPkgconfigDepends = [ opencv3 ];
19+ testHaskellDepends = [
20+ base bytestring containers data-default directory Glob
21+ haskell-src-exts JuicyPixels lens linear primitive QuickCheck repa
22+ tasty tasty-hunit tasty-quickcheck template-haskell text
23+ transformers vector
24+ ];
25+ benchmarkHaskellDepends = [ base bytestring criterion repa ];
26+ hardeningDisable = [ "bindnow" ];
27+ homepage = "https://github.com/LumiGuide/haskell-opencv";
28+ description = "Haskell binding to OpenCV-3.x";
29+ license = stdenv.lib.licenses.bsd3;
30+}
test/golden-test-cases/openexr-write.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, binary, bytestring, data-binary-ieee754
2−, deepseq, directory, fetchurl, hspec, split, vector, vector-split
2+, deepseq, directory, hspec, split, stdenv, vector, vector-split
33, zlib
44}:
55mkDerivation {
66 pname = "openexr-write";
77 version = "0.1.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base binary bytestring data-binary-ieee754 deepseq split vector
1411 vector-split zlib
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/pavolzetor/openexr-write#readme";
1815 description = "Library for writing images in OpenEXR HDR file format";
1916 license = stdenv.lib.licenses.gpl3;
20−}
17+}
test/golden-test-cases/openpgp-asciiarmor.nix.golden+4−6
@@ -1,13 +1,10 @@
11{ mkDerivation, attoparsec, base, base64-bytestring, bytestring
2−, cereal, fetchurl, HUnit, test-framework, test-framework-hunit
2+, cereal, HUnit, stdenv, test-framework, test-framework-hunit
33}:
44mkDerivation {
55 pname = "openpgp-asciiarmor";
66 version = "0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 attoparsec base base64-bytestring bytestring cereal
1310 ];
@@ -18,4 +15,5 @@ mkDerivation {
1815 homepage = "http://floss.scru.org/openpgp-asciiarmor";
1916 description = "OpenPGP (RFC4880) ASCII Armor codec";
2017 license = "unknown";
21−}
18+ hydraPlatforms = stdenv.lib.platforms.none;
19+}
test/golden-test-cases/pager.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, conduit, conduit-extra, directory
2−, fetchurl, process, resourcet, safe, terminfo, text, transformers
2+, process, resourcet, safe, stdenv, terminfo, text, transformers
33, unix
44}:
55mkDerivation {
66 pname = "pager";
77 version = "0.1.1.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 enableSeparateDataOutput = true;
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/pharpend/pager";
2118 description = "Open up a pager, like 'less' or 'more'";
2219 license = stdenv.lib.licenses.bsd2;
23−}
20+}
test/golden-test-cases/partial-isomorphisms.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, template-haskell }:
1+{ mkDerivation, base, stdenv, template-haskell }:
22mkDerivation {
33 pname = "partial-isomorphisms";
44 version = "0.2.2.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base template-haskell ];
107 homepage = "http://www.informatik.uni-marburg.de/~rendel/unparse";
118 description = "Partial isomorphisms";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/partial-semigroup.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, doctest, fetchurl, hedgehog }:
1+{ mkDerivation, base, doctest, hedgehog, stdenv }:
22mkDerivation {
33 pname = "partial-semigroup";
44 version = "0.3.0.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 testHaskellDepends = [ base doctest hedgehog ];
118 homepage = "https://github.com/chris-martin/partial-semigroup";
129 description = "A partial binary associative operator";
1310 license = stdenv.lib.licenses.asl20;
14−}
11+}
test/golden-test-cases/pathtype.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, deepseq, directory, fetchurl, old-time
2−, QuickCheck, random, tagged, time, transformers, utility-ht
1+{ mkDerivation, base, deepseq, directory, old-time, QuickCheck
2+, random, stdenv, tagged, time, transformers, utility-ht
33}:
44mkDerivation {
55 pname = "pathtype";
66 version = "0.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "http://hub.darcs.net/thielema/pathtype/";
1916 description = "Type-safe replacement for System.FilePath etc";
2017 license = stdenv.lib.licenses.bsd3;
21−}
18+}
test/golden-test-cases/pcap.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, network, time }:
1+{ mkDerivation, base, bytestring, network, stdenv, time }:
22mkDerivation {
33 pname = "pcap";
44 version = "0.4.5.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring network time ];
107 homepage = "https://github.com/bos/pcap";
118 description = "A system-independent interface for user-level packet capture";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/pdfinfo.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, mtl, old-locale, process-extras
2−, text, time, time-locale-compat
1+{ mkDerivation, base, mtl, old-locale, process-extras, stdenv, text
2+, time, time-locale-compat
33}:
44mkDerivation {
55 pname = "pdfinfo";
66 version = "1.5.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base mtl old-locale process-extras text time time-locale-compat
1310 ];
1411 homepage = "https://github.com/chrisdone/pdfinfo";
1512 description = "Wrapper around the pdfinfo command";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/pell.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, arithmoi, base, Cabal, cabal-test-quickcheck
2−, containers, fetchurl, primes, QuickCheck
2+, containers, primes, QuickCheck, stdenv
33}:
44mkDerivation {
55 pname = "pell";
66 version = "0.1.1.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ arithmoi base containers ];
129 testHaskellDepends = [
1310 arithmoi base Cabal cabal-test-quickcheck containers primes
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/brunjlar/pell";
1714 description = "Package to solve the Generalized Pell Equation";
1815 license = stdenv.lib.licenses.mit;
19−}
16+}
test/golden-test-cases/persistable-types-HDBC-pg.nix.golden+5−7
@@ -1,13 +1,11 @@
1−{ mkDerivation, base, bytestring, convertible, fetchurl, HDBC
2−, persistable-record, relational-query-HDBC, text-postgresql
1+{ mkDerivation, base, bytestring, convertible, HDBC
2+, persistable-record, relational-query-HDBC, stdenv
3+, text-postgresql
34}:
45mkDerivation {
56 pname = "persistable-types-HDBC-pg";
67 version = "0.0.1.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
8+ sha256 = "deadbeef";
119 libraryHaskellDepends = [
1210 base bytestring convertible HDBC persistable-record
1311 relational-query-HDBC text-postgresql
@@ -15,4 +13,4 @@ mkDerivation {
1513 homepage = "http://khibino.github.io/haskell-relational-record/";
1614 description = "HDBC and Relational-Record instances of PostgreSQL extended types";
1715 license = stdenv.lib.licenses.bsd3;
18−}
16+}
test/golden-test-cases/persistent-mysql-haskell.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, base, bytestring, conduit, containers
2−, fetchurl, io-streams, monad-control, monad-logger, mysql-haskell
3−, network, persistent, persistent-template, resource-pool
4−, resourcet, text, time, tls, transformers
2+, io-streams, monad-control, monad-logger, mysql-haskell, network
3+, persistent, persistent-template, resource-pool, resourcet, stdenv
4+, text, time, tls, transformers
55}:
66mkDerivation {
77 pname = "persistent-mysql-haskell";
88 version = "0.3.6";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -23,4 +20,4 @@ mkDerivation {
2320 homepage = "http://www.yesodweb.com/book/persistent";
2421 description = "A pure haskell backend for the persistent library using MySQL database server";
2522 license = stdenv.lib.licenses.mit;
26−}
23+}
test/golden-test-cases/picosat.nix.golden+3−6
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, containers, fetchurl, random, rdtsc
1+{ mkDerivation, base, containers, random, rdtsc, stdenv
22, transformers
33}:
44mkDerivation {
55 pname = "picosat";
66 version = "0.1.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base containers transformers ];
129 testHaskellDepends = [ base containers random rdtsc transformers ];
1310 homepage = "https://github.com/sdiehl/haskell-picosat";
1411 description = "Bindings to the PicoSAT solver";
1512 license = stdenv.lib.licenses.mit;
16−}
13+}
test/golden-test-cases/pinch.nix.golden+4−6
@@ -1,14 +1,11 @@
11{ mkDerivation, array, base, bytestring, containers, deepseq
2−, fetchurl, ghc-prim, hashable, hspec, hspec-discover, QuickCheck
2+, ghc-prim, hashable, hspec, hspec-discover, QuickCheck, stdenv
33, text, unordered-containers, vector
44}:
55mkDerivation {
66 pname = "pinch";
77 version = "0.3.2.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 array base bytestring containers deepseq ghc-prim hashable text
1411 unordered-containers vector
@@ -17,7 +14,8 @@ mkDerivation {
1714 base bytestring containers hspec hspec-discover QuickCheck text
1815 unordered-containers vector
1916 ];
17+ testToolDepends = [ hspec-discover ];
2018 homepage = "https://github.com/abhinav/pinch#readme";
2119 description = "An alternative implementation of Thrift for Haskell";
2220 license = stdenv.lib.licenses.bsd3;
23−}
21+}
test/golden-test-cases/pipes-network.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, network, network-simple
2−, pipes, pipes-safe, transformers
1+{ mkDerivation, base, bytestring, network, network-simple, pipes
2+, pipes-safe, stdenv, transformers
33}:
44mkDerivation {
55 pname = "pipes-network";
66 version = "0.6.4.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring network network-simple pipes pipes-safe
1310 transformers
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/k0001/pipes-network";
1613 description = "Use network sockets together with the pipes library";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/pipes-safe.nix.golden+4−8
@@ -1,18 +1,14 @@
1−{ mkDerivation, base, containers, exceptions, fetchurl
2−, monad-control, mtl, pipes, primitive, transformers
3−, transformers-base
1+{ mkDerivation, base, containers, exceptions, monad-control, mtl
2+, pipes, primitive, stdenv, transformers, transformers-base
43}:
54mkDerivation {
65 pname = "pipes-safe";
76 version = "2.2.6";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 base containers exceptions monad-control mtl pipes primitive
1410 transformers transformers-base
1511 ];
1612 description = "Safety for the pipes ecosystem";
1713 license = stdenv.lib.licenses.bsd3;
18−}
14+}
test/golden-test-cases/pointed.nix.golden+4−8
@@ -1,15 +1,11 @@
11{ mkDerivation, base, comonad, containers, data-default-class
2−, fetchurl, hashable, kan-extensions, semigroupoids, semigroups
3−, stm, tagged, transformers, transformers-compat
4−, unordered-containers
2+, hashable, kan-extensions, semigroupoids, semigroups, stdenv, stm
3+, tagged, transformers, transformers-compat, unordered-containers
54}:
65mkDerivation {
76 pname = "pointed";
87 version = "5";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
8+ sha256 = "deadbeef";
139 libraryHaskellDepends = [
1410 base comonad containers data-default-class hashable kan-extensions
1511 semigroupoids semigroups stm tagged transformers
@@ -18,4 +14,4 @@ mkDerivation {
1814 homepage = "http://github.com/ekmett/pointed/";
1915 description = "Pointed and copointed data";
2016 license = stdenv.lib.licenses.bsd3;
21−}
17+}
test/golden-test-cases/poly-arity.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, constraints, fetchurl }:
1+{ mkDerivation, base, constraints, stdenv }:
22mkDerivation {
33 pname = "poly-arity";
44 version = "0.1.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base constraints ];
107 description = "Tools for working with functions of undetermined arity";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/polynomials-bernstein.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl, vector }:
1+{ mkDerivation, base, stdenv, vector }:
22mkDerivation {
33 pname = "polynomials-bernstein";
44 version = "1.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base vector ];
107 description = "A solver for systems of polynomial equations in bernstein form";
118 license = "GPL";
12−}
9+}
test/golden-test-cases/postgresql-simple-url.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, network-uri, postgresql-simple
2−, split, tasty, tasty-quickcheck
1+{ mkDerivation, base, network-uri, postgresql-simple, split, stdenv
2+, tasty, tasty-quickcheck
33}:
44mkDerivation {
55 pname = "postgresql-simple-url";
66 version = "0.2.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base network-uri postgresql-simple split
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/futurice/postgresql-simple-url";
1815 description = "Parse postgres:// url into ConnectInfo";
1916 license = stdenv.lib.licenses.mit;
20−}
17+}
test/golden-test-cases/prelude-safeenum.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "prelude-safeenum";
44 version = "0.1.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "http://code.haskell.org/~wren/";
118 description = "A redefinition of the Prelude's Enum class in order to render it safe";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/presburger.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, containers, fetchurl, pretty, QuickCheck }:
1+{ mkDerivation, base, containers, pretty, QuickCheck, stdenv }:
22mkDerivation {
33 pname = "presburger";
44 version = "1.3.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers pretty ];
107 testHaskellDepends = [ base QuickCheck ];
118 homepage = "http://github.com/yav/presburger";
129 description = "A decision procedure for quantifier-free linear arithmetic";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/prettyclass.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl, pretty }:
1+{ mkDerivation, base, pretty, stdenv }:
22mkDerivation {
33 pname = "prettyclass";
44 version = "1.0.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base pretty ];
107 description = "Pretty printing class similar to Show";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/prettyprinter-compat-ansi-wl-pprint.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, prettyprinter
2−, prettyprinter-ansi-terminal, text
1+{ mkDerivation, base, prettyprinter, prettyprinter-ansi-terminal
2+, stdenv, text
33}:
44mkDerivation {
55 pname = "prettyprinter-compat-ansi-wl-pprint";
66 version = "1.0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base prettyprinter prettyprinter-ansi-terminal text
1310 ];
1411 homepage = "http://github.com/quchen/prettyprinter";
1512 description = "Drop-in compatibility package to migrate from »ansi-wl-pprint« to »prettyprinter«";
1613 license = stdenv.lib.licenses.bsd2;
17−}
14+}
test/golden-test-cases/prettyprinter-compat-wl-pprint.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, prettyprinter, text }:
1+{ mkDerivation, base, prettyprinter, stdenv, text }:
22mkDerivation {
33 pname = "prettyprinter-compat-wl-pprint";
44 version = "1.0.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base prettyprinter text ];
107 homepage = "http://github.com/quchen/prettyprinter";
118 description = "Prettyprinter compatibility module for previous users of the wl-pprint package";
129 license = stdenv.lib.licenses.bsd2;
13−}
10+}
test/golden-test-cases/primitive.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, ghc-prim, transformers }:
1+{ mkDerivation, base, ghc-prim, stdenv, transformers }:
22mkDerivation {
33 pname = "primitive";
44 version = "0.6.2.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ghc-prim transformers ];
107 testHaskellDepends = [ base ghc-prim ];
118 homepage = "https://github.com/haskell/primitive";
129 description = "Primitive memory-related operations";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/product-profunctors.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, contravariant, fetchurl, profunctors, tagged
1+{ mkDerivation, base, contravariant, profunctors, stdenv, tagged
22, template-haskell
33}:
44mkDerivation {
55 pname = "product-profunctors";
66 version = "0.8.0.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base contravariant profunctors tagged template-haskell
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/tomjaguarpaw/product-profunctors";
1613 description = "product-profunctors";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/profiterole.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, directory, extra, fetchurl
2−, filepath, ghc-prof, hashable, scientific, text
1+{ mkDerivation, base, containers, directory, extra, filepath
2+, ghc-prof, hashable, scientific, stdenv, text
33}:
44mkDerivation {
55 pname = "profiterole";
66 version = "0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = false;
129 isExecutable = true;
1310 executableHaskellDepends = [
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/ndmitchell/profiterole#readme";
1815 description = "Restructure GHC profile reports";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/projectroot.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, directory, fetchurl, hspec, QuickCheck }:
1+{ mkDerivation, base, directory, hspec, QuickCheck, stdenv }:
22mkDerivation {
33 pname = "projectroot";
44 version = "0.2.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base directory ];
107 testHaskellDepends = [ base hspec QuickCheck ];
118 homepage = "https://github.com/yamadapc/haskell-projectroot";
129 description = "Bindings to the projectroot C logic";
1310 license = stdenv.lib.licenses.mit;
14−}
11+}
test/golden-test-cases/proto-lens-optparse.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, optparse-applicative, proto-lens
1+{ mkDerivation, base, optparse-applicative, proto-lens, stdenv
22, text
33}:
44mkDerivation {
55 pname = "proto-lens-optparse";
66 version = "0.1.0.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base optparse-applicative proto-lens text
1310 ];
1411 homepage = "https://github.com/google/proto-lens";
1512 description = "Adapting proto-lens to optparse-applicative ReadMs";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/proto-lens.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, attoparsec, base, bytestring, containers
2−, data-default-class, fetchurl, lens-family, parsec, pretty, text
2+, data-default-class, lens-family, parsec, pretty, stdenv, text
33, transformers, void
44}:
55mkDerivation {
66 pname = "proto-lens";
77 version = "0.2.2.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 attoparsec base bytestring containers data-default-class
1411 lens-family parsec pretty text transformers void
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/google/proto-lens";
1714 description = "A lens-based implementation of protocol buffers in Haskell";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/psqueues.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, array, base, containers, criterion, deepseq
2−, fetchurl, fingertree-psqueue, ghc-prim, hashable, HUnit, mtl
3−, PSQueue, QuickCheck, random, tagged, test-framework
2+, fingertree-psqueue, ghc-prim, hashable, HUnit, mtl, PSQueue
3+, QuickCheck, random, stdenv, tagged, test-framework
44, test-framework-hunit, test-framework-quickcheck2
55, unordered-containers
66}:
77mkDerivation {
88 pname = "psqueues";
99 version = "0.2.4.0";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [ base deepseq ghc-prim hashable ];
1512 testHaskellDepends = [
1613 array base deepseq ghc-prim hashable HUnit QuickCheck tagged
@@ -22,4 +19,4 @@ mkDerivation {
2219 ];
2320 description = "Pure priority search queues";
2421 license = stdenv.lib.licenses.bsd3;
25−}
22+}
test/golden-test-cases/pusher-http-haskell.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, aeson, base, base16-bytestring, bytestring
2−, cryptonite, fetchurl, hashable, hspec, http-client, http-types
3−, memory, QuickCheck, scientific, text, time, transformers
2+, cryptonite, hashable, hspec, http-client, http-types, memory
3+, QuickCheck, scientific, stdenv, text, time, transformers
44, unordered-containers, vector
55}:
66mkDerivation {
77 pname = "pusher-http-haskell";
88 version = "1.5.1.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 aeson base base16-bytestring bytestring cryptonite hashable
1512 http-client http-types memory text time transformers
@@ -23,4 +20,4 @@ mkDerivation {
2320 homepage = "https://github.com/pusher-community/pusher-http-haskell";
2421 description = "Haskell client library for the Pusher HTTP API";
2522 license = stdenv.lib.licenses.mit;
26−}
23+}
test/golden-test-cases/quickcheck-arbitrary-adt.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, hspec, lens, QuickCheck
1+{ mkDerivation, base, hspec, lens, QuickCheck, stdenv
22, template-haskell, transformers
33}:
44mkDerivation {
55 pname = "quickcheck-arbitrary-adt";
66 version = "0.2.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base QuickCheck ];
129 testHaskellDepends = [
1310 base hspec lens QuickCheck template-haskell transformers
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/plow-technologies/quickcheck-arbitrary-adt#readme";
1613 description = "Generic typeclasses for generating arbitrary ADTs";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/quickcheck-combinators.nix.golden+3−7
@@ -1,13 +1,9 @@
1−{ mkDerivation, base, fetchurl, QuickCheck, unfoldable-restricted
2−}:
1+{ mkDerivation, base, QuickCheck, stdenv, unfoldable-restricted }:
32mkDerivation {
43 pname = "quickcheck-combinators";
54 version = "0.0.2";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base QuickCheck unfoldable-restricted ];
117 description = "Simple type-level combinators for augmenting QuickCheck instances";
128 license = stdenv.lib.licenses.bsd3;
13−}
9+}
test/golden-test-cases/rank1dynamic.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, binary, fetchurl, HUnit, test-framework
1+{ mkDerivation, base, binary, HUnit, stdenv, test-framework
22, test-framework-hunit
33}:
44mkDerivation {
55 pname = "rank1dynamic";
66 version = "0.4.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base binary ];
129 testHaskellDepends = [
1310 base HUnit test-framework test-framework-hunit
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://haskell-distributed.github.com";
1613 description = "Like Data.Dynamic/Data.Typeable but with support for rank-1 polymorphic types";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/rasterific-svg.nix.golden+5−8
@@ -1,15 +1,12 @@
11{ mkDerivation, base, binary, bytestring, containers, directory
2−, fetchurl, filepath, FontyFruity, JuicyPixels, lens, linear, mtl
3−, optparse-applicative, primitive, Rasterific, scientific, svg-tree
4−, text, transformers, vector
2+, filepath, FontyFruity, JuicyPixels, lens, linear, mtl
3+, optparse-applicative, primitive, Rasterific, scientific, stdenv
4+, svg-tree, text, transformers, vector
55}:
66mkDerivation {
77 pname = "rasterific-svg";
88 version = "0.3.3";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 isLibrary = true;
1411 isExecutable = true;
1512 libraryHaskellDepends = [
@@ -23,4 +20,4 @@ mkDerivation {
2320 ];
2421 description = "SVG renderer based on Rasterific";
2522 license = stdenv.lib.licenses.bsd3;
26−}
23+}
test/golden-test-cases/ratio-int.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "ratio-int";
44 version = "0.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/RaphaelJ/ratio-int";
118 description = "Fast specialisation of Data.Ratio for Int.";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/rawstring-qm.nix.golden+3−7
@@ -1,14 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, template-haskell, text
2−}:
1+{ mkDerivation, base, bytestring, stdenv, template-haskell, text }:
32mkDerivation {
43 pname = "rawstring-qm";
54 version = "0.2.3.0";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base bytestring template-haskell text ];
117 homepage = "https://github.com/tolysz/rawstring-qm";
128 description = "Simple raw string quotation and dictionary interpolation";
139 license = stdenv.lib.licenses.bsd3;
14−}
10+}
test/golden-test-cases/reactive-banana.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, containers, fetchurl, hashable, HUnit, pqueue
2−, psqueues, test-framework, test-framework-hunit, transformers
1+{ mkDerivation, base, containers, hashable, HUnit, pqueue, psqueues
2+, stdenv, test-framework, test-framework-hunit, transformers
33, unordered-containers, vault
44}:
55mkDerivation {
66 pname = "reactive-banana";
77 version = "1.1.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base containers hashable pqueue transformers unordered-containers
1411 vault
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://wiki.haskell.org/Reactive-banana";
2118 description = "Library for functional reactive programming (FRP)";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/readline.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, ncurses, process, readline }:
1+{ mkDerivation, base, ncurses, process, readline, stdenv }:
22mkDerivation {
33 pname = "readline";
44 version = "1.0.3.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base process ];
107 librarySystemDepends = [ ncurses readline ];
118 description = "An interface to the GNU readline library";
129 license = "GPL";
13−}
10+}
test/golden-test-cases/rebase.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, base, base-prelude, bifunctors, bytestring
22, containers, contravariant, contravariant-extras, deepseq, dlist
3−, either, fail, fetchurl, hashable, mtl, profunctors, scientific
4−, semigroupoids, semigroups, stm, text, time, transformers
3+, either, fail, hashable, mtl, profunctors, scientific
4+, semigroupoids, semigroups, stdenv, stm, text, time, transformers
55, unordered-containers, uuid, vector, void
66}:
77mkDerivation {
88 pname = "rebase";
99 version = "1.1.1";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 base base-prelude bifunctors bytestring containers contravariant
1613 contravariant-extras deepseq dlist either fail hashable mtl
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/nikita-volkov/rebase";
2118 description = "A more progressive alternative to the \"base\" package";
2219 license = stdenv.lib.licenses.mit;
23−}
20+}
test/golden-test-cases/reform-blaze.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, blaze-html, blaze-markup, fetchurl, reform
1+{ mkDerivation, base, blaze-html, blaze-markup, reform, stdenv
22, text
33}:
44mkDerivation {
55 pname = "reform-blaze";
66 version = "0.2.4.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base blaze-html blaze-markup reform text
1310 ];
1411 homepage = "http://www.happstack.com/";
1512 description = "Add support for using blaze-html with Reform";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/reform-hsp.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, hsp, hsx2hs, reform, text }:
1+{ mkDerivation, base, hsp, hsx2hs, reform, stdenv, text }:
22mkDerivation {
33 pname = "reform-hsp";
44 version = "0.2.7.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base hsp hsx2hs reform text ];
107 homepage = "http://www.happstack.com/";
118 description = "Add support for using HSP with Reform";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/regex-compat.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, fetchurl, regex-base, regex-posix }:
1+{ mkDerivation, array, base, regex-base, regex-posix, stdenv }:
22mkDerivation {
33 pname = "regex-compat";
44 version = "0.95.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ array base regex-base regex-posix ];
107 homepage = "http://sourceforge.net/projects/lazy-regex";
118 description = "Replaces/Enhances Text.Regex";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/regex-pcre.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, array, base, bytestring, containers, fetchurl, pcre
2−, regex-base
1+{ mkDerivation, array, base, bytestring, containers, pcre
2+, regex-base, stdenv
33}:
44mkDerivation {
55 pname = "regex-pcre";
66 version = "0.94.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 array base bytestring containers regex-base
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://hackage.haskell.org/package/regex-pcre";
1613 description = "Replaces/Enhances Text.Regex";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/relational-query.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, array, base, bytestring, containers, dlist
2−, fetchurl, names-th, persistable-record, product-isomorphic
3−, quickcheck-simple, sql-words, template-haskell, text
2+, names-th, persistable-record, product-isomorphic
3+, quickcheck-simple, sql-words, stdenv, template-haskell, text
44, th-reify-compat, time, time-locale-compat, transformers
55}:
66mkDerivation {
77 pname = "relational-query";
88 version = "0.11.0.0";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 array base bytestring containers dlist names-th persistable-record
1512 product-isomorphic sql-words template-haskell text th-reify-compat
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "http://khibino.github.io/haskell-relational-record/";
2219 description = "Typeful, Modular, Relational, algebraic query engine";
2320 license = stdenv.lib.licenses.bsd3;
24−}
21+}
test/golden-test-cases/relational-schemas.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, bytestring, containers, fetchurl
2−, relational-query, template-haskell, time
1+{ mkDerivation, base, bytestring, containers, relational-query
2+, stdenv, template-haskell, time
33}:
44mkDerivation {
55 pname = "relational-schemas";
66 version = "0.1.6.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring containers relational-query template-haskell time
1310 ];
1411 homepage = "http://khibino.github.io/haskell-relational-record/";
1512 description = "RDBMSs' schema templates for relational-query";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/repa-io.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, binary, bmp, bytestring, fetchurl, old-time
2−, repa, vector
1+{ mkDerivation, base, binary, bmp, bytestring, old-time, repa
2+, stdenv, vector
33}:
44mkDerivation {
55 pname = "repa-io";
66 version = "3.4.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base binary bmp bytestring old-time repa vector
1310 ];
1411 homepage = "http://repa.ouroborus.net";
1512 description = "Read and write Repa arrays in various formats";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/repa.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, bytestring, fetchurl, ghc-prim, QuickCheck
1+{ mkDerivation, base, bytestring, ghc-prim, QuickCheck, stdenv
22, template-haskell, vector
33}:
44mkDerivation {
55 pname = "repa";
66 version = "3.4.1.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring ghc-prim QuickCheck template-haskell vector
1310 ];
1411 homepage = "http://repa.ouroborus.net";
1512 description = "High performance, regular, shape polymorphic parallel arrays";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/rosezipper.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, fetchurl }:
1+{ mkDerivation, base, containers, stdenv }:
22mkDerivation {
33 pname = "rosezipper";
44 version = "0.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers ];
107 description = "Generic zipper implementation for Data.Tree";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/rvar.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, fetchurl, MonadPrompt, mtl, random-source
1+{ mkDerivation, base, MonadPrompt, mtl, random-source, stdenv
22, transformers
33}:
44mkDerivation {
55 pname = "rvar";
66 version = "0.2.0.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base MonadPrompt mtl random-source transformers
1310 ];
1411 homepage = "https://github.com/mokus0/random-fu";
1512 description = "Random Variables";
1613 license = stdenv.lib.licenses.publicDomain;
17−}
14+}
test/golden-test-cases/scalpel-core.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, containers, criterion
2−, data-default, fail, fetchurl, HUnit, regex-base, regex-tdfa
2+, data-default, fail, HUnit, regex-base, regex-tdfa, stdenv
33, tagsoup, text, vector
44}:
55mkDerivation {
66 pname = "scalpel-core";
77 version = "0.5.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base bytestring containers data-default fail regex-base regex-tdfa
1411 tagsoup text vector
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "https://github.com/fimad/scalpel";
1916 description = "A high level web scraping library for Haskell";
2017 license = stdenv.lib.licenses.asl20;
21−}
18+}
test/golden-test-cases/sdl2.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, exceptions, fetchurl, linear
2−, SDL2, StateVar, text, transformers, vector
1+{ mkDerivation, base, bytestring, exceptions, linear, SDL2
2+, StateVar, stdenv, text, transformers, vector
33}:
44mkDerivation {
55 pname = "sdl2";
66 version = "2.3.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 enableSeparateDataOutput = true;
@@ -18,4 +15,4 @@ mkDerivation {
1815 libraryPkgconfigDepends = [ SDL2 ];
1916 description = "Both high- and low-level bindings to the SDL library (version 2.0.4+).";
2017 license = stdenv.lib.licenses.bsd3;
21−}
18+}
test/golden-test-cases/selda-sqlite.nix.golden+4−7
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, direct-sqlite, directory, exceptions
2−, fetchurl, selda, text
1+{ mkDerivation, base, direct-sqlite, directory, exceptions, selda
2+, stdenv, text
33}:
44mkDerivation {
55 pname = "selda-sqlite";
66 version = "0.1.6.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base direct-sqlite directory exceptions selda text
1310 ];
1411 homepage = "https://github.com/valderman/selda";
1512 description = "SQLite backend for the Selda database EDSL";
1613 license = stdenv.lib.licenses.mit;
17−}
14+}
test/golden-test-cases/selda.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, exceptions, fetchurl, hashable
2−, mtl, psqueues, text, time, unordered-containers
1+{ mkDerivation, base, bytestring, exceptions, hashable, mtl
2+, psqueues, stdenv, text, time, unordered-containers
33}:
44mkDerivation {
55 pname = "selda";
66 version = "0.1.11.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring exceptions hashable mtl psqueues text time
1310 unordered-containers
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://selda.link";
1613 description = "Type-safe, high-level EDSL for interacting with relational databases";
1714 license = stdenv.lib.licenses.mit;
18−}
15+}
test/golden-test-cases/servant-checked-exceptions.nix.golden+6−15
@@ -1,27 +1,18 @@
1−{ mkDerivation, aeson, base, bytestring, deepseq, doctest, fetchurl
2−, Glob, hspec-wai, http-api-data, http-client, http-media
3−, natural-transformation, optparse-applicative, profunctors
4−, servant, servant-client, servant-docs, servant-server, tagged
5−, tasty, tasty-hspec, tasty-hunit, text, wai, warp
1+{ mkDerivation, aeson, base, bytestring, deepseq, doctest, Glob
2+, hspec-wai, http-media, profunctors, servant, servant-client
3+, servant-docs, servant-server, stdenv, tagged, tasty, tasty-hspec
4+, tasty-hunit, text, wai
65}:
76mkDerivation {
87 pname = "servant-checked-exceptions";
98 version = "0.4.1.0";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
9+ sha256 = "deadbeef";
1410 isLibrary = true;
1511 isExecutable = true;
1612 libraryHaskellDepends = [
1713 aeson base bytestring deepseq http-media profunctors servant
1814 servant-client servant-docs servant-server tagged text
1915 ];
20− executableHaskellDepends = [
21− aeson base http-api-data http-client natural-transformation
22− optparse-applicative servant servant-client servant-docs
23− servant-server text wai warp
24− ];
2516 testHaskellDepends = [
2617 base bytestring doctest Glob hspec-wai servant servant-server tasty
2718 tasty-hspec tasty-hunit wai
@@ -29,4 +20,4 @@ mkDerivation {
2920 homepage = "https://github.com/cdepillabout/servant-checked-exceptions";
3021 description = "Checked exceptions for Servant APIs";
3122 license = stdenv.lib.licenses.bsd3;
32−}
23+}
test/golden-test-cases/set-cover.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, enummapset, fetchurl, psqueues
1+{ mkDerivation, base, containers, enummapset, psqueues, stdenv
22, utility-ht
33}:
44mkDerivation {
55 pname = "set-cover";
66 version = "0.0.8";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://hub.darcs.net/thielema/set-cover/";
1714 description = "Solve exact set cover problems like Sudoku, 8 Queens, Soma Cube, Tetris Cube";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/sets.nix.golden+6−9
@@ -1,16 +1,13 @@
11{ mkDerivation, base, commutative, composition, containers
2−, contravariant, criterion, fetchurl, hashable, keys, mtl
3−, QuickCheck, quickcheck-instances, semigroupoids, semigroups
4−, tasty, tasty-hunit, tasty-quickcheck, transformers
5−, transformers-base, unordered-containers, witherable
2+, contravariant, criterion, hashable, keys, mtl, QuickCheck
3+, quickcheck-instances, semigroupoids, semigroups, stdenv, tasty
4+, tasty-hunit, tasty-quickcheck, transformers, transformers-base
5+, unordered-containers, witherable
66}:
77mkDerivation {
88 pname = "sets";
99 version = "0.0.5.2";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 base commutative composition containers contravariant hashable keys
1613 mtl QuickCheck semigroupoids semigroups transformers
@@ -27,4 +24,4 @@ mkDerivation {
2724 ];
2825 description = "Ducktyped set interface for Haskell containers";
2926 license = stdenv.lib.licenses.mit;
30−}
27+}
test/golden-test-cases/simple-smt.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, fetchurl, process }:
1+{ mkDerivation, base, process, stdenv }:
22mkDerivation {
33 pname = "simple-smt";
44 version = "0.7.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base process ];
107 description = "A simple way to interact with an SMT solver process";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/slack-web.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, aeson, base, containers, errors, fetchurl, hspec
1+{ mkDerivation, aeson, base, containers, errors, hspec
22, http-api-data, http-client, http-client-tls, megaparsec, mtl
3−, servant, servant-client, text, time, transformers
3+, servant, servant-client, stdenv, text, time, transformers
44}:
55mkDerivation {
66 pname = "slack-web";
77 version = "0.2.0.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson base containers errors http-api-data http-client
1411 http-client-tls megaparsec mtl servant servant-client text time
@@ -21,4 +18,4 @@ mkDerivation {
2118 homepage = "https://github.com/jpvillaisaza/slack-web";
2219 description = "Bindings for the Slack web API";
2320 license = stdenv.lib.licenses.mit;
24−}
21+}
test/golden-test-cases/slug.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, aeson, base, exceptions, fetchurl, hspec
2−, http-api-data, path-pieces, persistent, QuickCheck, text
1+{ mkDerivation, aeson, base, exceptions, hspec, http-api-data
2+, path-pieces, persistent, QuickCheck, stdenv, text
33}:
44mkDerivation {
55 pname = "slug";
66 version = "0.1.7";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base exceptions http-api-data path-pieces persistent
1310 QuickCheck text
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "https://github.com/mrkkrp/slug";
1916 description = "Type-safe slugs for Yesod ecosystem";
2017 license = stdenv.lib.licenses.bsd3;
21−}
18+}
test/golden-test-cases/soxlib.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, base, bytestring, containers, explicit-exception
2−, extensible-exceptions, fetchurl, sample-frame, sox
3−, storablevector, transformers, utility-ht
2+, extensible-exceptions, sample-frame, sox, stdenv, storablevector
3+, transformers, utility-ht
44}:
55mkDerivation {
66 pname = "soxlib";
77 version = "0.0.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "http://www.haskell.org/haskellwiki/Sox";
2017 description = "Write, read, convert audio signals using libsox";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/speedy-slice.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, fetchurl, kan-extensions, lens
2−, mcmc-types, mwc-probability, pipes, primitive, transformers
1+{ mkDerivation, base, containers, kan-extensions, lens, mcmc-types
2+, mwc-probability, pipes, primitive, stdenv, transformers
33}:
44mkDerivation {
55 pname = "speedy-slice";
66 version = "0.3.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base kan-extensions lens mcmc-types mwc-probability pipes primitive
1310 transformers
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://github.com/jtobin/speedy-slice";
1714 description = "Speedy slice sampling";
1815 license = stdenv.lib.licenses.mit;
19−}
16+}
test/golden-test-cases/splice.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, network }:
1+{ mkDerivation, base, network, stdenv }:
22mkDerivation {
33 pname = "splice";
44 version = "0.6.1.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base network ];
107 homepage = "http://corsis.github.com/splice/";
118 description = "Cross-platform Socket to Socket Data Splicing";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/spreadsheet.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, explicit-exception, fetchurl, transformers
1+{ mkDerivation, base, explicit-exception, stdenv, transformers
22, utility-ht
33}:
44mkDerivation {
55 pname = "spreadsheet";
66 version = "0.1.3.7";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://www.haskell.org/haskellwiki/Spreadsheet";
1714 description = "Read and write spreadsheets from and to CSV files in a lazy way";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/stack-type.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, transformers }:
1+{ mkDerivation, base, stdenv, transformers }:
22mkDerivation {
33 pname = "stack-type";
44 version = "0.1.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base transformers ];
107 homepage = "https://github.com/aiya000/hs-stack-type";
118 description = "The basic stack type";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/state-codes.nix.golden+4−7
@@ -1,16 +1,13 @@
1−{ mkDerivation, aeson, base, fetchurl, hspec, QuickCheck
2−, shakespeare, text
1+{ mkDerivation, aeson, base, hspec, QuickCheck, shakespeare, stdenv
2+, text
33}:
44mkDerivation {
55 pname = "state-codes";
66 version = "0.1.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ aeson base shakespeare text ];
129 testHaskellDepends = [ aeson base hspec QuickCheck text ];
1310 homepage = "https://github.com/acamino/state-codes#README";
1411 description = "ISO 3166-2:US state codes and i18n names";
1512 license = stdenv.lib.licenses.mit;
16−}
13+}
test/golden-test-cases/stb-image-redux.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, hspec, vector }:
1+{ mkDerivation, base, hspec, stdenv, vector }:
22mkDerivation {
33 pname = "stb-image-redux";
44 version = "0.2.1.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base vector ];
107 testHaskellDepends = [ base hspec vector ];
118 homepage = "https://github.com/typedrat/stb-image-redux#readme";
129 description = "Image loading and writing microlibrary";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/stm-containers.nix.golden+6−9
@@ -1,16 +1,13 @@
11{ mkDerivation, async, base, base-prelude, containers, criterion
2−, fetchurl, focus, free, hashable, hashtables, HTF, list-t, loch-th
3−, mtl, mtl-prelude, mwc-random, mwc-random-monad, placeholders
4−, primitive, QuickCheck, text, transformers, unordered-containers
5−, vector
2+, focus, free, hashable, hashtables, HTF, list-t, loch-th, mtl
3+, mtl-prelude, mwc-random, mwc-random-monad, placeholders
4+, primitive, QuickCheck, stdenv, text, transformers
5+, unordered-containers, vector
66}:
77mkDerivation {
88 pname = "stm-containers";
99 version = "0.2.16";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 base base-prelude focus hashable list-t primitive transformers
1613 ];
@@ -27,4 +24,4 @@ mkDerivation {
2724 homepage = "https://github.com/nikita-volkov/stm-containers";
2825 description = "Containers for STM";
2926 license = stdenv.lib.licenses.mit;
30−}
27+}
test/golden-test-cases/streaming-commons.nix.golden+4−7
@@ -1,14 +1,11 @@
11{ mkDerivation, array, async, base, blaze-builder, bytestring
2−, criterion, deepseq, directory, fetchurl, hspec, network, process
3−, QuickCheck, random, stm, text, transformers, unix, zlib
2+, criterion, deepseq, directory, hspec, network, process
3+, QuickCheck, random, stdenv, stm, text, transformers, unix, zlib
44}:
55mkDerivation {
66 pname = "streaming-commons";
77 version = "0.1.18";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 array async base blaze-builder bytestring directory network process
1411 random stm text transformers unix zlib
@@ -23,4 +20,4 @@ mkDerivation {
2320 homepage = "https://github.com/fpco/streaming-commons";
2421 description = "Common lower-level functions needed by various streaming data libraries";
2522 license = stdenv.lib.licenses.mit;
26−}
23+}
test/golden-test-cases/strict-base-types.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, aeson, base, bifunctors, binary, deepseq, fetchurl
2−, ghc-prim, hashable, lens, QuickCheck, strict
1+{ mkDerivation, aeson, base, bifunctors, binary, deepseq, ghc-prim
2+, hashable, lens, QuickCheck, stdenv, strict
33}:
44mkDerivation {
55 pname = "strict-base-types";
66 version = "0.5.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base bifunctors binary deepseq ghc-prim hashable lens
1310 QuickCheck strict
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/meiersi/strict-base-types";
1613 description = "Strict variants of the types provided in base";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/strict-types.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, array, base, bytestring, containers, deepseq
2−, fetchurl, hashable, text, unordered-containers, vector
2+, hashable, stdenv, text, unordered-containers, vector
33}:
44mkDerivation {
55 pname = "strict-types";
66 version = "0.1.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 array base bytestring containers deepseq hashable text
1310 unordered-containers vector
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/pepeiborra/strict-types";
1613 description = "A type level predicate ranging over strict types";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/string-class.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, tagged, text }:
1+{ mkDerivation, base, bytestring, stdenv, tagged, text }:
22mkDerivation {
33 pname = "string-class";
44 version = "0.1.6.5";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring tagged text ];
107 homepage = "https://github.com/bairyn/string-class";
118 description = "String class library";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/stripe-haskell.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, stripe-core, stripe-http-streams }:
1+{ mkDerivation, base, stdenv, stripe-core, stripe-http-streams }:
22mkDerivation {
33 pname = "stripe-haskell";
44 version = "2.2.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base stripe-core stripe-http-streams ];
107 homepage = "https://github.com/dmjio/stripe";
118 description = "Stripe API for Haskell";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/svg-tree.nix.golden+5−8
@@ -1,18 +1,15 @@
1−{ mkDerivation, attoparsec, base, bytestring, containers, fetchurl
2−, JuicyPixels, lens, linear, mtl, scientific, text, transformers
3−, vector, xml
1+{ mkDerivation, attoparsec, base, bytestring, containers
2+, JuicyPixels, lens, linear, mtl, scientific, stdenv, text
3+, transformers, vector, xml
44}:
55mkDerivation {
66 pname = "svg-tree";
77 version = "0.6.2.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 attoparsec base bytestring containers JuicyPixels lens linear mtl
1411 scientific text transformers vector xml
1512 ];
1613 description = "SVG file loader and serializer";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/swagger.nix.golden+5−7
@@ -1,17 +1,15 @@
1−{ mkDerivation, aeson, base, bytestring, fetchurl, tasty
2−, tasty-hunit, text, time, transformers
1+{ mkDerivation, aeson, base, bytestring, stdenv, tasty, tasty-hunit
2+, text, time, transformers
33}:
44mkDerivation {
55 pname = "swagger";
66 version = "0.3.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 aeson base bytestring text time transformers
1310 ];
1411 testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
1512 description = "Implementation of swagger data model";
1613 license = "unknown";
17−}
14+ hydraPlatforms = stdenv.lib.platforms.none;
15+}
test/golden-test-cases/system-argv0.nix.golden+3−7
@@ -1,14 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, system-filepath, text
2−}:
1+{ mkDerivation, base, bytestring, stdenv, system-filepath, text }:
32mkDerivation {
43 pname = "system-argv0";
54 version = "0.1.1";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base bytestring system-filepath text ];
117 homepage = "https://john-millikin.com/software/haskell-filesystem/";
128 description = "Get argv[0] as a FilePath";
139 license = stdenv.lib.licenses.mit;
14−}
10+}
test/golden-test-cases/system-fileio.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, chell, fetchurl, system-filepath
1+{ mkDerivation, base, bytestring, chell, stdenv, system-filepath
22, temporary, text, time, transformers, unix
33}:
44mkDerivation {
55 pname = "system-fileio";
66 version = "0.3.16.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring system-filepath text time unix
1310 ];
@@ -18,4 +15,4 @@ mkDerivation {
1815 homepage = "https://github.com/fpco/haskell-filesystem";
1916 description = "Consistent filesystem interaction across GHC versions (deprecated)";
2017 license = stdenv.lib.licenses.mit;
21−}
18+}
test/golden-test-cases/system-filepath.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, base, bytestring, chell, chell-quickcheck, deepseq
2−, fetchurl, QuickCheck, text
2+, QuickCheck, stdenv, text
33}:
44mkDerivation {
55 pname = "system-filepath";
66 version = "0.4.13.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base bytestring deepseq text ];
129 testHaskellDepends = [
1310 base bytestring chell chell-quickcheck QuickCheck text
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/fpco/haskell-filesystem";
1613 description = "High-level, byte-based file and directory path manipulations (deprecated)";
1714 license = stdenv.lib.licenses.mit;
18−}
15+}
test/golden-test-cases/tagged.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, deepseq, fetchurl, template-haskell
1+{ mkDerivation, base, deepseq, stdenv, template-haskell
22, transformers, transformers-compat
33}:
44mkDerivation {
55 pname = "tagged";
66 version = "0.8.5";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base deepseq template-haskell transformers transformers-compat
1310 ];
1411 homepage = "http://github.com/ekmett/tagged";
1512 description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/taggy.nix.golden+3−6
@@ -1,14 +1,11 @@
11{ mkDerivation, attoparsec, base, blaze-html, blaze-markup
2−, criterion, directory, fetchurl, hspec, hspec-attoparsec, tagsoup
2+, criterion, directory, hspec, hspec-attoparsec, stdenv, tagsoup
33, text, unordered-containers, vector
44}:
55mkDerivation {
66 pname = "taggy";
77 version = "0.2.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 enableSeparateDataOutput = true;
@@ -27,4 +24,4 @@ mkDerivation {
2724 homepage = "http://github.com/alpmestan/taggy";
2825 description = "Efficient and simple HTML/XML parsing library";
2926 license = stdenv.lib.licenses.bsd3;
30−}
27+}
test/golden-test-cases/tagstream-conduit.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, attoparsec, base, blaze-builder, bytestring
2−, case-insensitive, conduit, conduit-extra, data-default, fetchurl
3−, hspec, HUnit, QuickCheck, resourcet, text, transformers
2+, case-insensitive, conduit, conduit-extra, data-default, hspec
3+, HUnit, QuickCheck, resourcet, stdenv, text, transformers
44, xml-conduit
55}:
66mkDerivation {
77 pname = "tagstream-conduit";
88 version = "0.5.5.3";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 libraryHaskellDepends = [
1411 attoparsec base blaze-builder bytestring case-insensitive conduit
1512 conduit-extra data-default resourcet text transformers xml-conduit
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "http://github.com/yihuang/tagstream-conduit";
2118 description = "streamlined html tag parser";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/tasty-hedgehog.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, hedgehog, tagged, tasty
1+{ mkDerivation, base, hedgehog, stdenv, tagged, tasty
22, tasty-expected-failure
33}:
44mkDerivation {
55 pname = "tasty-hedgehog";
66 version = "0.1.0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base hedgehog tagged tasty ];
129 testHaskellDepends = [
1310 base hedgehog tasty tasty-expected-failure
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "https://github.com/qfpl/tasty-hedghog";
1613 description = "Integrates the hedgehog testing library with the tasty testing framework";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/tasty-rerun.nix.golden+4−8
@@ -1,14 +1,10 @@
1−{ mkDerivation, base, containers, fetchurl, mtl
2−, optparse-applicative, reducers, split, stm, tagged, tasty
3−, transformers
1+{ mkDerivation, base, containers, mtl, optparse-applicative
2+, reducers, split, stdenv, stm, tagged, tasty, transformers
43}:
54mkDerivation {
65 pname = "tasty-rerun";
76 version = "1.1.8";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 base containers mtl optparse-applicative reducers split stm tagged
1410 tasty transformers
@@ -16,4 +12,4 @@ mkDerivation {
1612 homepage = "http://github.com/ocharles/tasty-rerun";
1713 description = "Run tests by filtering the test tree depending on the result of previous test runs";
1814 license = stdenv.lib.licenses.bsd3;
19−}
15+}
test/golden-test-cases/tce-conf.nix.golden+3−6
@@ -1,11 +1,8 @@
1−{ mkDerivation, base, containers, fetchurl, HUnit }:
1+{ mkDerivation, base, containers, HUnit, stdenv }:
22mkDerivation {
33 pname = "tce-conf";
44 version = "1.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base containers ];
@@ -14,4 +11,4 @@ mkDerivation {
1411 homepage = "http://hub.darcs.net/dino/tce-conf";
1512 description = "Very simple config file reading";
1613 license = stdenv.lib.licenses.bsd3;
17−}
14+}
test/golden-test-cases/terminal-progress-bar.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, HUnit, stm, stm-chans
2−, test-framework, test-framework-hunit
1+{ mkDerivation, base, HUnit, stdenv, stm, stm-chans, test-framework
2+, test-framework-hunit
33}:
44mkDerivation {
55 pname = "terminal-progress-bar";
66 version = "0.1.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [ base stm stm-chans ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 homepage = "https://github.com/roelvandijk/terminal-progress-bar";
1815 description = "A simple progress bar in the terminal";
1916 license = stdenv.lib.licenses.bsd3;
20−}
17+}
test/golden-test-cases/test-fixture.nix.golden+5−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, data-default-class, exceptions, fetchurl
1+{ mkDerivation, base, data-default-class, exceptions
22, haskell-src-exts, haskell-src-meta, hspec, hspec-discover, mtl
3−, template-haskell, th-orphans, transformers
3+, stdenv, template-haskell, th-orphans, transformers
44}:
55mkDerivation {
66 pname = "test-fixture";
77 version = "0.5.1.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 base data-default-class exceptions haskell-src-exts
1411 haskell-src-meta mtl template-haskell th-orphans
@@ -16,7 +13,8 @@ mkDerivation {
1613 testHaskellDepends = [
1714 base hspec hspec-discover mtl template-haskell transformers
1815 ];
16+ testToolDepends = [ hspec-discover ];
1917 homepage = "http://github.com/cjdev/test-fixture#readme";
2018 description = "Test monadic side-effects";
2119 license = stdenv.lib.licenses.bsd3;
22−}
20+}
test/golden-test-cases/texmath.nix.golden+5−9
@@ -1,20 +1,16 @@
1−{ mkDerivation, base, bytestring, containers, directory, fetchurl
2−, filepath, mtl, network-uri, pandoc-types, parsec, process, split
3−, syb, temporary, text, utf8-string, xml
1+{ mkDerivation, base, bytestring, containers, directory, filepath
2+, mtl, pandoc-types, parsec, process, split, stdenv, syb, temporary
3+, text, utf8-string, xml
44}:
55mkDerivation {
66 pname = "texmath";
77 version = "0.10.1";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 isLibrary = true;
1310 isExecutable = true;
1411 libraryHaskellDepends = [
1512 base containers mtl pandoc-types parsec syb xml
1613 ];
17− executableHaskellDepends = [ network-uri ];
1814 testHaskellDepends = [
1915 base bytestring directory filepath process split temporary text
2016 utf8-string xml
@@ -22,4 +18,4 @@ mkDerivation {
2218 homepage = "http://github.com/jgm/texmath";
2319 description = "Conversion between formats used to represent mathematics";
2420 license = "GPL";
25−}
21+}
test/golden-test-cases/text-icu.nix.golden+4−8
@@ -1,15 +1,11 @@
11{ mkDerivation, array, base, bytestring, deepseq, directory
2−, fetchurl, ghc-prim, HUnit, icu, QuickCheck, random
3−, test-framework, test-framework-hunit, test-framework-quickcheck2
4−, text
2+, ghc-prim, HUnit, icu, QuickCheck, random, stdenv, test-framework
3+, test-framework-hunit, test-framework-quickcheck2, text
54}:
65mkDerivation {
76 pname = "text-icu";
87 version = "0.7.0.1";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
8+ sha256 = "deadbeef";
139 libraryHaskellDepends = [ base bytestring deepseq text ];
1410 librarySystemDepends = [ icu ];
1511 testHaskellDepends = [
@@ -20,4 +16,4 @@ mkDerivation {
2016 homepage = "https://github.com/bos/text-icu";
2117 description = "Bindings to the ICU library";
2218 license = stdenv.lib.licenses.bsd3;
23−}
19+}
test/golden-test-cases/text-postgresql.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, dlist, fetchurl, QuickCheck
2−, quickcheck-simple, transformers, transformers-compat
1+{ mkDerivation, base, dlist, QuickCheck, quickcheck-simple, stdenv
2+, transformers, transformers-compat
33}:
44mkDerivation {
55 pname = "text-postgresql";
66 version = "0.0.2.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base dlist transformers transformers-compat
1310 ];
@@ -15,4 +12,4 @@ mkDerivation {
1512 homepage = "http://khibino.github.io/haskell-relational-record/";
1613 description = "Parser and Printer of PostgreSQL extended types";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
test/golden-test-cases/th-expand-syns.nix.golden+3−7
@@ -1,15 +1,11 @@
1−{ mkDerivation, base, containers, fetchurl, syb, template-haskell
2−}:
1+{ mkDerivation, base, containers, stdenv, syb, template-haskell }:
32mkDerivation {
43 pname = "th-expand-syns";
54 version = "0.4.4.0";
6− src = fetchurl {
7− url = "http://example.org/";
8− sha256 = "abc";
9− };
5+ sha256 = "deadbeef";
106 libraryHaskellDepends = [ base containers syb template-haskell ];
117 testHaskellDepends = [ base template-haskell ];
128 homepage = "https://github.com/DanielSchuessler/th-expand-syns";
139 description = "Expands type synonyms in Template Haskell ASTs";
1410 license = stdenv.lib.licenses.bsd3;
15−}
11+}
test/golden-test-cases/these.nix.golden+5−8
@@ -1,16 +1,13 @@
11{ mkDerivation, aeson, base, bifunctors, binary, containers
2−, data-default-class, deepseq, fetchurl, hashable, keys, mtl
3−, profunctors, QuickCheck, quickcheck-instances, semigroupoids
4−, tasty, tasty-quickcheck, transformers, transformers-compat
2+, data-default-class, deepseq, hashable, keys, mtl, profunctors
3+, QuickCheck, quickcheck-instances, semigroupoids, stdenv, tasty
4+, tasty-quickcheck, transformers, transformers-compat
55, unordered-containers, vector, vector-instances
66}:
77mkDerivation {
88 pname = "these";
99 version = "0.7.4";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 aeson base bifunctors binary containers data-default-class deepseq
1613 hashable keys mtl profunctors QuickCheck semigroupoids transformers
@@ -24,4 +21,4 @@ mkDerivation {
2421 homepage = "https://github.com/isomorphism/these";
2522 description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
2623 license = stdenv.lib.licenses.bsd3;
27−}
24+}
test/golden-test-cases/timezone-series.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, deepseq, fetchurl, time }:
1+{ mkDerivation, base, deepseq, stdenv, time }:
22mkDerivation {
33 pname = "timezone-series";
44 version = "0.1.8";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base deepseq time ];
107 homepage = "http://projects.haskell.org/time-ng/";
118 description = "Enhanced timezone handling for Data.Time";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/transformers-compat.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, ghc-prim, transformers }:
1+{ mkDerivation, base, ghc-prim, stdenv, transformers }:
22mkDerivation {
33 pname = "transformers-compat";
44 version = "0.5.1.4";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ghc-prim transformers ];
107 homepage = "http://github.com/ekmett/transformers-compat/";
118 description = "A small compatibility shim exposing the new types from transformers 0.3 and 0.4 to older Haskell platforms.";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/transformers-lift.nix.golden+3−7
@@ -1,16 +1,12 @@
1−{ mkDerivation, base, fetchurl, transformers
2−, writer-cps-transformers
1+{ mkDerivation, base, stdenv, transformers, writer-cps-transformers
32}:
43mkDerivation {
54 pname = "transformers-lift";
65 version = "0.2.0.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
6+ sha256 = "deadbeef";
117 libraryHaskellDepends = [
128 base transformers writer-cps-transformers
139 ];
1410 description = "Ad-hoc type classes for lifting";
1511 license = stdenv.lib.licenses.bsd3;
16−}
12+}
test/golden-test-cases/tree-fun.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, fetchurl, mtl }:
1+{ mkDerivation, base, containers, mtl, stdenv }:
22mkDerivation {
33 pname = "tree-fun";
44 version = "0.8.1.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers mtl ];
107 description = "Library for functions pertaining to tree exploration and manipulation";
118 license = stdenv.lib.licenses.gpl3;
12−}
9+}
test/golden-test-cases/ttrie.nix.golden+4−7
@@ -1,16 +1,13 @@
11{ mkDerivation, async, atomic-primops, base, bifunctors, containers
2−, criterion-plus, deepseq, fetchurl, hashable, mwc-random
3−, primitive, QuickCheck, stm, stm-containers, stm-stats
2+, criterion-plus, deepseq, hashable, mwc-random, primitive
3+, QuickCheck, stdenv, stm, stm-containers, stm-stats
44, test-framework, test-framework-quickcheck2, text, transformers
55, unordered-containers, vector
66}:
77mkDerivation {
88 pname = "ttrie";
99 version = "0.1.2.1";
10− src = fetchurl {
11− url = "http://example.org/";
12− sha256 = "abc";
13− };
10+ sha256 = "deadbeef";
1411 libraryHaskellDepends = [
1512 atomic-primops base hashable primitive stm
1613 ];
@@ -26,4 +23,4 @@ mkDerivation {
2623 homepage = "http://github.com/mcschroeder/ttrie";
2724 description = "Contention-free STM hash map";
2825 license = stdenv.lib.licenses.mit;
29−}
26+}
test/golden-test-cases/tuple-th.nix.golden+3−6
@@ -1,12 +1,9 @@
1−{ mkDerivation, base, containers, fetchurl, template-haskell }:
1+{ mkDerivation, base, containers, stdenv, template-haskell }:
22mkDerivation {
33 pname = "tuple-th";
44 version = "0.2.5";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers template-haskell ];
107 description = "Generate (non-recursive) utility functions for tuples of statically known size";
118 license = stdenv.lib.licenses.bsd3;
12−}
9+}
test/golden-test-cases/tuples-homogenous-h98.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl }:
1+{ mkDerivation, base, stdenv }:
22mkDerivation {
33 pname = "tuples-homogenous-h98";
44 version = "0.1.1.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 homepage = "https://github.com/ppetr/tuples-homogenous-h98";
118 description = "Wrappers for n-ary tuples with Traversable and Applicative/Monad instances";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/turtle-options.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, HUnit, optional-args, parsec, text
1+{ mkDerivation, base, HUnit, optional-args, parsec, stdenv, text
22, turtle
33}:
44mkDerivation {
55 pname = "turtle-options";
66 version = "0.1.0.4";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 isLibrary = true;
129 isExecutable = true;
1310 libraryHaskellDepends = [ base optional-args parsec text turtle ];
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/elaye/turtle-options#readme";
1714 description = "Collection of command line options and parsers for these options";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/type-operators.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, ghc-prim }:
1+{ mkDerivation, base, ghc-prim, stdenv }:
22mkDerivation {
33 pname = "type-operators";
44 version = "0.1.0.4";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ghc-prim ];
107 homepage = "https://github.com/Shou/type-operators#readme";
118 description = "Various type-level operators";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/type-spec.nix.golden+3−6
@@ -1,14 +1,11 @@
1−{ mkDerivation, base, fetchurl, pretty }:
1+{ mkDerivation, base, pretty, stdenv }:
22mkDerivation {
33 pname = "type-spec";
44 version = "0.3.0.1";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base pretty ];
107 testHaskellDepends = [ base ];
118 homepage = "https://github.com/sheyll/type-spec#readme";
129 description = "Type Level Specification by Example";
1310 license = stdenv.lib.licenses.bsd3;
14−}
11+}
test/golden-test-cases/unicode-show.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, HUnit, QuickCheck, test-framework
1+{ mkDerivation, base, HUnit, QuickCheck, stdenv, test-framework
22, test-framework-hunit, test-framework-quickcheck2
33}:
44mkDerivation {
55 pname = "unicode-show";
66 version = "0.1.0.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base ];
129 testHaskellDepends = [
1310 base HUnit QuickCheck test-framework test-framework-hunit
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://github.com/nushio3/unicode-show#readme";
1714 description = "print and show in unicode";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/unique.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, ghc-prim, hashable }:
1+{ mkDerivation, base, ghc-prim, hashable, stdenv }:
22mkDerivation {
33 pname = "unique";
44 version = "0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ghc-prim hashable ];
107 homepage = "http://github.com/ekmett/unique/";
118 description = "Fully concurrent unique identifiers";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/unix-bytestring.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl }:
1+{ mkDerivation, base, bytestring, stdenv }:
22mkDerivation {
33 pname = "unix-bytestring";
44 version = "0.3.7.3";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base bytestring ];
107 homepage = "http://code.haskell.org/~wren/";
118 description = "Unix/Posix-specific functions for ByteStrings";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/unlit.nix.golden+3−6
@@ -1,15 +1,12 @@
1−{ mkDerivation, base, directory, fetchurl, text }:
1+{ mkDerivation, base, directory, stdenv, text }:
22mkDerivation {
33 pname = "unlit";
44 version = "0.4.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 isLibrary = true;
107 isExecutable = true;
118 libraryHaskellDepends = [ base directory text ];
129 executableHaskellDepends = [ base directory text ];
1310 description = "Tool to convert literate code between styles or to code";
1411 license = stdenv.lib.licenses.bsd3;
15−}
12+}
test/golden-test-cases/utility-ht.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, fetchurl, QuickCheck }:
1+{ mkDerivation, base, QuickCheck, stdenv }:
22mkDerivation {
33 pname = "utility-ht";
44 version = "0.0.14";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base ];
107 testHaskellDepends = [ base QuickCheck ];
118 description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
129 license = stdenv.lib.licenses.bsd3;
13−}
10+}
test/golden-test-cases/validity-aeson.nix.golden+4−8
@@ -1,14 +1,10 @@
1−{ mkDerivation, aeson, base, fetchurl, validity
2−, validity-scientific, validity-text, validity-unordered-containers
3−, validity-vector
1+{ mkDerivation, aeson, base, stdenv, validity, validity-scientific
2+, validity-text, validity-unordered-containers, validity-vector
43}:
54mkDerivation {
65 pname = "validity-aeson";
76 version = "0.1.0.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 aeson base validity validity-scientific validity-text
1410 validity-unordered-containers validity-vector
@@ -16,4 +12,4 @@ mkDerivation {
1612 homepage = "https://github.com/NorfairKing/validity#readme";
1713 description = "Validity instances for aeson";
1814 license = stdenv.lib.licenses.mit;
19−}
15+}
test/golden-test-cases/validity-containers.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, fetchurl, validity }:
1+{ mkDerivation, base, containers, stdenv, validity }:
22mkDerivation {
33 pname = "validity-containers";
44 version = "0.2.0.0";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base containers validity ];
107 homepage = "https://github.com/NorfairKing/validity#readme";
118 description = "Validity instances for containers";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/vector-mmap.nix.golden+3−6
@@ -1,16 +1,13 @@
1−{ mkDerivation, base, fetchurl, mmap, primitive, QuickCheck
1+{ mkDerivation, base, mmap, primitive, QuickCheck, stdenv
22, temporary, vector
33}:
44mkDerivation {
55 pname = "vector-mmap";
66 version = "0.0.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base mmap primitive vector ];
129 testHaskellDepends = [ base QuickCheck temporary vector ];
1310 homepage = "http://github.com/pumpkin/vector-mmap";
1411 description = "Memory map immutable and mutable vectors";
1512 license = stdenv.lib.licenses.bsd3;
16−}
13+}
test/golden-test-cases/vivid-supercollider.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, binary, bytestring, cereal, fetchurl
2−, microspec, QuickCheck, split, utf8-string, vivid-osc
1+{ mkDerivation, base, binary, bytestring, cereal, microspec
2+, QuickCheck, split, stdenv, utf8-string, vivid-osc
33}:
44mkDerivation {
55 pname = "vivid-supercollider";
66 version = "0.3.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base binary bytestring cereal split utf8-string vivid-osc
1310 ];
@@ -17,4 +14,4 @@ mkDerivation {
1714 ];
1815 description = "Implementation of SuperCollider server specifications";
1916 license = "GPL";
20−}
17+}
test/golden-test-cases/vty.nix.golden+6−9
@@ -1,18 +1,15 @@
11{ mkDerivation, base, blaze-builder, bytestring, Cabal, containers
2−, deepseq, directory, fetchurl, filepath, hashable, HUnit
3−, microlens, microlens-mtl, microlens-th, mtl, parallel, parsec
4−, QuickCheck, quickcheck-assertions, random, smallcheck, stm
5−, string-qq, terminfo, test-framework, test-framework-hunit
2+, deepseq, directory, filepath, hashable, HUnit, microlens
3+, microlens-mtl, microlens-th, mtl, parallel, parsec, QuickCheck
4+, quickcheck-assertions, random, smallcheck, stdenv, stm, string-qq
5+, terminfo, test-framework, test-framework-hunit
66, test-framework-smallcheck, text, transformers, unix, utf8-string
77, vector
88}:
99mkDerivation {
1010 pname = "vty";
1111 version = "5.19.1";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 isLibrary = true;
1714 isExecutable = true;
1815 libraryHaskellDepends = [
@@ -33,4 +30,4 @@ mkDerivation {
3330 homepage = "https://github.com/jtdaugherty/vty";
3431 description = "A simple terminal UI library";
3532 license = stdenv.lib.licenses.bsd3;
36−}
33+}
test/golden-test-cases/wai-cors.nix.golden+4−7
@@ -1,15 +1,12 @@
11{ mkDerivation, attoparsec, base, base-unicode-symbols, bytestring
2−, case-insensitive, directory, fetchurl, filepath, http-types, mtl
3−, network, process, tasty, tasty-hunit, text, transformers, wai
2+, case-insensitive, directory, filepath, http-types, mtl, network
3+, process, stdenv, tasty, tasty-hunit, text, transformers, wai
44, wai-extra, wai-websockets, warp, websockets
55}:
66mkDerivation {
77 pname = "wai-cors";
88 version = "0.2.6";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
9+ sha256 = "deadbeef";
1310 enableSeparateDataOutput = true;
1411 libraryHaskellDepends = [
1512 attoparsec base base-unicode-symbols bytestring case-insensitive
@@ -23,4 +20,4 @@ mkDerivation {
2320 homepage = "https://github.com/larskuhtz/wai-cors";
2421 description = "CORS for WAI";
2522 license = stdenv.lib.licenses.mit;
26−}
23+}
test/golden-test-cases/wai-middleware-auth.nix.golden+6−9
@@ -1,18 +1,15 @@
11{ mkDerivation, aeson, base, base64-bytestring, binary
22, blaze-builder, blaze-html, bytestring, case-insensitive, cereal
3−, clientsession, cookie, exceptions, fetchurl, hoauth2, http-client
3+, clientsession, cookie, exceptions, hoauth2, http-client
44, http-client-tls, http-conduit, http-reverse-proxy, http-types
5−, optparse-simple, regex-posix, safe-exceptions, shakespeare, text
6−, unix-compat, unordered-containers, uri-bytestring, vault, wai
7−, wai-app-static, wai-extra, warp, yaml
5+, optparse-simple, regex-posix, safe-exceptions, shakespeare
6+, stdenv, text, unix-compat, unordered-containers, uri-bytestring
7+, vault, wai, wai-app-static, wai-extra, warp, yaml
88}:
99mkDerivation {
1010 pname = "wai-middleware-auth";
1111 version = "0.1.2.1";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 isLibrary = true;
1714 isExecutable = true;
1815 libraryHaskellDepends = [
@@ -28,4 +25,4 @@ mkDerivation {
2825 ];
2926 description = "Authentication middleware that secures WAI application";
3027 license = stdenv.lib.licenses.mit;
31−}
28+}
test/golden-test-cases/wai-middleware-caching-redis.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, blaze-builder, bytestring, fetchurl, hedis
2−, http-types, text, wai, wai-middleware-caching
1+{ mkDerivation, base, blaze-builder, bytestring, hedis, http-types
2+, stdenv, text, wai, wai-middleware-caching
33}:
44mkDerivation {
55 pname = "wai-middleware-caching-redis";
66 version = "0.2.0.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base blaze-builder bytestring hedis http-types text wai
1310 wai-middleware-caching
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "http://github.com/yogsototh/wai-middleware-caching/tree/master/wai-middleware-caching-redis#readme";
1714 description = "Cache Wai Middleware using Redis backend";
1815 license = stdenv.lib.licenses.bsd3;
19−}
16+}
test/golden-test-cases/wai-middleware-prometheus.nix.golden+3−6
@@ -1,13 +1,10 @@
11{ mkDerivation, base, bytestring, clock, data-default, doctest
2−, fetchurl, http-types, prometheus-client, text, wai
2+, http-types, prometheus-client, stdenv, text, wai
33}:
44mkDerivation {
55 pname = "wai-middleware-prometheus";
66 version = "0.3.0";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base bytestring clock data-default http-types prometheus-client
1310 text wai
@@ -16,4 +13,4 @@ mkDerivation {
1613 homepage = "https://github.com/fimad/prometheus-haskell";
1714 description = "WAI middlware for exposing http://prometheus.io metrics.";
1815 license = stdenv.lib.licenses.asl20;
19−}
16+}
test/golden-test-cases/warp.nix.golden+7−10
@@ -1,18 +1,15 @@
11{ mkDerivation, array, async, auto-update, base, blaze-builder
22, bytestring, bytestring-builder, case-insensitive, containers
3−, criterion, directory, doctest, fetchurl, ghc-prim, hashable
4−, hspec, HTTP, http-date, http-types, http2, HUnit, iproute
5−, lifted-base, network, process, QuickCheck, silently
6−, simple-sendfile, stm, streaming-commons, text, time, transformers
7−, unix, unix-compat, vault, wai, word8
3+, criterion, directory, doctest, ghc-prim, hashable, hspec, HTTP
4+, http-date, http-types, http2, HUnit, iproute, lifted-base
5+, network, process, QuickCheck, silently, simple-sendfile, stdenv
6+, stm, streaming-commons, text, time, transformers, unix
7+, unix-compat, vault, wai, word8
88}:
99mkDerivation {
1010 pname = "warp";
1111 version = "3.2.13";
12− src = fetchurl {
13− url = "http://example.org/";
14− sha256 = "abc";
15− };
12+ sha256 = "deadbeef";
1613 libraryHaskellDepends = [
1714 array async auto-update base blaze-builder bytestring
1815 bytestring-builder case-insensitive containers ghc-prim hashable
@@ -34,4 +31,4 @@ mkDerivation {
3431 homepage = "http://github.com/yesodweb/wai";
3532 description = "A fast, light-weight web server for WAI applications";
3633 license = stdenv.lib.licenses.mit;
37−}
34+}
test/golden-test-cases/weigh.nix.golden+5−11
@@ -1,21 +1,15 @@
1−{ mkDerivation, base, bytestring-trie, containers, deepseq
2−, fetchurl, mtl, process, random, split, template-haskell
3−, temporary, unordered-containers
1+{ mkDerivation, base, deepseq, mtl, process, split, stdenv
2+, template-haskell, temporary
43}:
54mkDerivation {
65 pname = "weigh";
76 version = "0.0.7";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 base deepseq mtl process split template-haskell temporary
1410 ];
15− testHaskellDepends = [
16− base bytestring-trie containers deepseq random unordered-containers
17− ];
11+ testHaskellDepends = [ base deepseq ];
1812 homepage = "https://github.com/fpco/weigh#readme";
1913 description = "Measure allocations of a Haskell functions/values";
2014 license = stdenv.lib.licenses.bsd3;
21−}
15+}
test/golden-test-cases/xml-hamlet.nix.golden+4−7
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, containers, fetchurl, hspec, HUnit, parsec
2−, shakespeare, template-haskell, text, xml-conduit
1+{ mkDerivation, base, containers, hspec, HUnit, parsec, shakespeare
2+, stdenv, template-haskell, text, xml-conduit
33}:
44mkDerivation {
55 pname = "xml-hamlet";
66 version = "0.4.1.1";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base containers parsec shakespeare template-haskell text
1310 xml-conduit
@@ -19,4 +16,4 @@ mkDerivation {
1916 homepage = "http://www.yesodweb.com/";
2017 description = "Hamlet-style quasiquoter for XML content";
2118 license = stdenv.lib.licenses.bsd3;
22−}
19+}
test/golden-test-cases/xmonad-contrib.nix.golden+4−8
@@ -1,15 +1,11 @@
11{ mkDerivation, base, bytestring, containers, directory
2−, extensible-exceptions, fetchurl, filepath, mtl, old-locale
3−, old-time, process, random, unix, utf8-string, X11, X11-xft
4−, xmonad
2+, extensible-exceptions, filepath, mtl, old-locale, old-time
3+, process, random, stdenv, unix, utf8-string, X11, X11-xft, xmonad
54}:
65mkDerivation {
76 pname = "xmonad-contrib";
87 version = "0.13";
9− src = fetchurl {
10− url = "http://example.org/";
11− sha256 = "abc";
12− };
8+ sha256 = "deadbeef";
139 libraryHaskellDepends = [
1410 base bytestring containers directory extensible-exceptions filepath
1511 mtl old-locale old-time process random unix utf8-string X11 X11-xft
@@ -18,4 +14,4 @@ mkDerivation {
1814 homepage = "http://xmonad.org/";
1915 description = "Third party extensions for xmonad";
2016 license = stdenv.lib.licenses.bsd3;
21−}
17+}
test/golden-test-cases/yahoo-finance-api.nix.golden+4−7
@@ -1,14 +1,11 @@
1−{ mkDerivation, aeson, base, doctest, either, fetchurl, Glob, hspec
1+{ mkDerivation, aeson, base, doctest, either, Glob, hspec
22, http-api-data, http-client, http-client-tls, mtl, safe, servant
3−, servant-client, text, time, transformers, vector
3+, servant-client, stdenv, text, time, transformers, vector
44}:
55mkDerivation {
66 pname = "yahoo-finance-api";
77 version = "0.2.0.3";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
8+ sha256 = "deadbeef";
129 libraryHaskellDepends = [
1310 aeson base either http-api-data http-client mtl servant
1411 servant-client text time transformers vector
@@ -20,4 +17,4 @@ mkDerivation {
2017 homepage = "https://github.com/cdepillabout/yahoo-finance-api";
2118 description = "Read quotes from Yahoo Finance API";
2219 license = stdenv.lib.licenses.bsd3;
23−}
20+}
test/golden-test-cases/yesod-form-bootstrap4.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, classy-prelude-yesod, fetchurl, yesod-form }:
1+{ mkDerivation, base, classy-prelude-yesod, stdenv, yesod-form }:
22mkDerivation {
33 pname = "yesod-form-bootstrap4";
44 version = "0.1.0.2";
5− src = fetchurl {
6− url = "http://example.org/";
7− sha256 = "abc";
8− };
5+ sha256 = "deadbeef";
96 libraryHaskellDepends = [ base classy-prelude-yesod yesod-form ];
107 homepage = "https://github.com/ncaq/yesod-form-bootstrap4#readme";
118 description = "renderBootstrap4";
129 license = stdenv.lib.licenses.mit;
13−}
10+}
test/golden-test-cases/yesod-gitrepo.nix.golden+4−8
@@ -1,14 +1,10 @@
1−{ mkDerivation, base, directory, enclosed-exceptions, fetchurl
2−, http-types, lifted-base, process, temporary, text, wai
3−, yesod-core
1+{ mkDerivation, base, directory, enclosed-exceptions, http-types
2+, lifted-base, process, stdenv, temporary, text, wai, yesod-core
43}:
54mkDerivation {
65 pname = "yesod-gitrepo";
76 version = "0.2.1.0";
8− src = fetchurl {
9− url = "http://example.org/";
10− sha256 = "abc";
11− };
7+ sha256 = "deadbeef";
128 libraryHaskellDepends = [
139 base directory enclosed-exceptions http-types lifted-base process
1410 temporary text wai yesod-core
@@ -16,4 +12,4 @@ mkDerivation {
1612 homepage = "https://github.com/snoyberg/yesod-gitrepo";
1713 description = "Host content provided by a Git repo";
1814 license = stdenv.lib.licenses.mit;
19−}
15+}
test/golden-test-cases/yesod-recaptcha2.nix.golden+3−6
@@ -1,17 +1,14 @@
1−{ mkDerivation, base, classy-prelude-yesod, fetchurl, http-conduit
1+{ mkDerivation, base, classy-prelude-yesod, http-conduit, stdenv
22, yesod-auth
33}:
44mkDerivation {
55 pname = "yesod-recaptcha2";
66 version = "0.2.3";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [
129 base classy-prelude-yesod http-conduit yesod-auth
1310 ];
1411 homepage = "https://github.com/ncaq/yesod-recaptcha2#readme";
1512 description = "yesod recaptcha2";
1613 license = stdenv.lib.licenses.mit;
17−}
14+}
test/golden-test-cases/zlib.nix.golden+3−6
@@ -1,13 +1,10 @@
1−{ mkDerivation, base, bytestring, fetchurl, QuickCheck, tasty
1+{ mkDerivation, base, bytestring, QuickCheck, stdenv, tasty
22, tasty-hunit, tasty-quickcheck, zlib
33}:
44mkDerivation {
55 pname = "zlib";
66 version = "0.6.1.2";
7− src = fetchurl {
8− url = "http://example.org/";
9− sha256 = "abc";
10− };
7+ sha256 = "deadbeef";
118 libraryHaskellDepends = [ base bytestring ];
129 librarySystemDepends = [ zlib ];
1310 testHaskellDepends = [
@@ -15,4 +12,4 @@ mkDerivation {
1512 ];
1613 description = "Compression and decompression in the gzip and zlib formats";
1714 license = stdenv.lib.licenses.bsd3;
18−}
15+}
update-hackage-snapshot.shnew file+19
@@ -0,0 +1,19 @@
1+#! /usr/bin/env bash
2+
3+set -eu -o pipefail
4+
5+rev=$( git ls-remote --heads git://github.com/commercialhaskell/all-cabal-hashes.git hackage \
6+ | cut -f1
7+ )
8+url="https://github.com/commercialhaskell/all-cabal-hashes/archive/$rev.tar.gz"
9+sha=$( nix-prefetch-url "$url" )
10+
11+sed -e "s|url = .*;|url = \"$url\";|" \
12+ -e "s|sha256 = .*;|sha256 = \"$sha\";|" \
13+ -i nixpkgs/pkgs/data/misc/hackage/default.nix
14+
15+cat <<EOF
16+Verify that the new snapshot actually works:
17+
18+nix-build --no-out-link -E 'with (import ./nixpkgs {}); haskellPackages.callHackage "hsdns" "1.7.1" {}'
19+EOF
update-nixpkgs.sh+1−1
@@ -31,7 +31,7 @@ hackage=$(git rev-parse --verify HEAD)
3131cd ..
3232
3333# This command needs a recent development version of cabal-install. I don't
34−# think this works properly in verson 2.0.0.0 already.
34+# think this works properly in version 2.0.0.0 already.
3535cabal -v0 new-run hackage2nix -- --nixpkgs="$PWD/nixpkgs" +RTS -M4G -RTS
3636
3737cd nixpkgs
update-stackage.sh+15−7
@@ -2,11 +2,14 @@
22
33set -eu -o pipefail
44
5−tmpfile=$(mktemp "stackage-update.XXXXXXX")
6−trap "rm $tmpfile" 0
5+cd "$(dirname "$0")"
76
8−curl -L -s "https://www.stackage.org/lts/cabal.config" >"$tmpfile"
9−version=$(sed -n "s/^--.*http:..www.stackage.org.snapshot.lts-//p" "$tmpfile")
7+tmpfile=$(mktemp "update-stackage.XXXXXXX")
8+# shellcheck disable=SC2064
9+trap "rm ${tmpfile} ${tmpfile}.new" 0
10+
11+curl -L -s "https://stackage.org/lts/cabal.config" >"$tmpfile"
12+version=$(sed -rn "s/^--.*http:..(www.)?stackage.org.snapshot.lts-//p" "$tmpfile")
1013
1114# Create a simple yaml version of the file.
1215sed -r \
@@ -16,12 +19,13 @@ sed -r \
1619 -e 's|,$||' \
1720 -e '/installed$/d' \
1821 -e '/^$/d' \
19− -i "$tmpfile"
22+ < "${tmpfile}" | sort --ignore-case >"${tmpfile}.new"
2023
2124# Drop restrictions on some tools where we always want the latest version.
2225sed -r \
2326 -e '/ cabal-install /d' \
2427 -e '/ cabal2nix /d' \
28+ -e '/ cabal2spec /d' \
2529 -e '/ distribution-nixpkgs /d' \
2630 -e '/ git-annex /d' \
2731 -e '/ hindent /d' \
@@ -29,14 +33,18 @@ sed -r \
2933 -e '/ hlint /d' \
3034 -e '/ hoogle /d' \
3135 -e '/ hopenssl /d' \
36+ -e '/ jailbreak-cabal /d' \
37+ -e '/ json-autotype/d' \
3238 -e '/ language-nix /d' \
39+ -e '/ shake /d' \
3340 -e '/ ShellCheck /d' \
3441 -e '/ stack /d' \
3542 -e '/ weeder /d' \
36− -i "$tmpfile"
43+ < "${tmpfile}.new" > "${tmpfile}"
3744
3845# Drop the previous configuration ...
39−sed -e '/# LTS Haskell/,/^$/c \TODO\
46+# shellcheck disable=SC1004
47+sed -e '/ # LTS Haskell/,/^$/c \TODO\
4048' -i nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
4149
4250# ... and replace it with the new one.