From e93c797eefb1538e7defe04786e0bb5adb039799 Mon Sep 17 00:00:00 2001 From: Saku Laesvuori Date: Tue, 15 Aug 2023 10:35:48 +0300 Subject: [PATCH] Switch from guix.scm to providing a guix channel --- .guix-authorizations | 4 + .guix-channel | 4 + .guix/modules/datarekisteri-package.scm | 694 ++++++++++++++++++++++++ guix.scm | 693 +---------------------- 4 files changed, 703 insertions(+), 692 deletions(-) create mode 100644 .guix-authorizations create mode 100644 .guix-channel create mode 100644 .guix/modules/datarekisteri-package.scm mode change 100644 => 120000 guix.scm diff --git a/.guix-authorizations b/.guix-authorizations new file mode 100644 index 0000000..60d20ba --- /dev/null +++ b/.guix-authorizations @@ -0,0 +1,4 @@ +(authorizations + (version 0) + (("A0C9 1947 734F 076F 5F08 E9FF 257D 284A 2A1D 3A32" + (name "Saku Laesvuori")))) diff --git a/.guix-channel b/.guix-channel new file mode 100644 index 0000000..1dbdb2b --- /dev/null +++ b/.guix-channel @@ -0,0 +1,4 @@ +(channel + (version 0) + (url "https://git.datat.fi/ry/datarekisteri.git") + (directory ".guix/modules")) diff --git a/.guix/modules/datarekisteri-package.scm b/.guix/modules/datarekisteri-package.scm new file mode 100644 index 0000000..f35d228 --- /dev/null +++ b/.guix/modules/datarekisteri-package.scm @@ -0,0 +1,694 @@ +(define-module (datarekisteri-package) + #:use-module (guix) + #:use-module (guix build-system haskell) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages haskell) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-crypto) + #:use-module (gnu packages haskell-web) + #:use-module (gnu packages haskell-xyz)) + +(define vcs-file? + (or (git-predicate (string-append (current-source-directory) "/../..")) + (const #t))) + +(define-public datarekisteri + (package + (name "datarekisteri") + (version "0.0.1") + (source (local-file "../.." "datarekisteri-checkout" + #:recursive? #t + #:select? vcs-file?)) + (build-system haskell-build-system) + (inputs (list ghc-base64 + ghc-cryptonite + ghc-email-validate + ghc-esqueleto + ghc-mime-mail + ghc-morpheus-graphql + ghc-morpheus-graphql-client + ghc-persistent + ghc-persistent-postgresql + ghc-scotty + ghc-smtp-mail + ghc-wai-cors + ghc-wai-extra + ghc-yesod + ghc-yesod-static + ghc-yesod-auth)) + (home-page "") + (synopsis "") + (description "") + (license license:agpl3+))) + +(define ghc-authenticate + (package + (name "ghc-authenticate") + (version "1.3.5.1") + (source (origin + (method url-fetch) + (uri (hackage-uri "authenticate" version)) + (sha256 + (base32 + "1rhbvdgwdr68gp13p5piddfdqf3l9lmx4w7k249lc98y23780c3x")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-http-conduit + ghc-case-insensitive + ghc-http-types + ghc-xml-conduit + ghc-blaze-builder + ghc-attoparsec + ghc-unordered-containers + ghc-conduit + ghc-html-conduit + ghc-resourcet + ghc-network-uri)) + (home-page "http://github.com/yesodweb/authenticate") + (synopsis "Authentication methods for Haskell web applications.") + (description "API docs and the README are available at +.") + (license license:expat))) + +(define ghc-yesod-auth + (package + (name "ghc-yesod-auth") + (version "1.6.11") + (source (origin + (method url-fetch) + (uri (hackage-uri "yesod-auth" version)) + (sha256 + (base32 + "0fdahk5mc63g0zsafk8axry01qaxahmclpmmwygp2lhfsjy8mby2")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-authenticate + ghc-base16-bytestring + ghc-base64-bytestring + ghc-blaze-builder + ghc-blaze-html + ghc-blaze-markup + ghc-conduit + ghc-conduit-extra + ghc-cryptonite + ghc-data-default + ghc-email-validate + ghc-file-embed + ghc-http-client + ghc-http-client-tls + ghc-http-conduit + ghc-http-types + ghc-memory + ghc-nonce + ghc-persistent + ghc-random + ghc-safe + ghc-shakespeare + ghc-unliftio + ghc-unliftio-core + ghc-unordered-containers + ghc-wai + ghc-yesod-core + ghc-yesod-form + ghc-yesod-persistent + ghc-network-uri)) + (home-page "http://www.yesodweb.com/") + (synopsis "Authentication for Yesod.") + (description "API docs and the README are available at +") + (license license:expat))) + +(define ghc-scotty + (package + (name "ghc-scotty") + (version "0.12") + (source (origin + (method url-fetch) + (uri (hackage-uri "scotty" version)) + (sha256 + (base32 + "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-base-compat-batteries + ghc-blaze-builder + ghc-case-insensitive + ghc-data-default-class + ghc-fail + ghc-http-types + ghc-monad-control + ghc-nats + ghc-network + ghc-regex-compat + ghc-transformers-base + ghc-transformers-compat + ghc-wai + ghc-wai-extra + ghc-warp)) + (native-inputs (list ghc-async ghc-hspec ghc-hspec-wai ghc-lifted-base hspec-discover)) + (arguments + `(#:cabal-revision ("7" + "1i8icc612w4dbmqmnf99drqpmjvhjnkmqgk9xr63amj8jkz5lp4m"))) + (home-page "https://github.com/scotty-web/scotty") + (synopsis + "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp") + (description + "This package provides a Haskell web framework inspired by Ruby's Sinatra, using +WAI and Warp. . @ {-# LANGUAGE OverloadedStrings #-} . import +Web.Scotty . import Data.Monoid (mconcat) . main = scotty 3000 $ get +"/:word" $ do beam <- param "word" + html $ mconcat ["<h1>Scotty, ", beam, " +me up!</h1>"] @ . . Scotty is the cheap and cheerful way to write +RESTful, declarative web applications. . * A page is as simple as defining the +verb, url pattern, and Text content. . * It is template-language agnostic. +Anything that returns a Text value will do. . * Conforms to WAI Application +interface. . * Uses very fast Warp webserver by default. . As for the name: +Sinatra + Warp = Scotty. . [WAI] . +[Warp] ") + (license license:bsd-3))) + +(define ghc-hspec-wai + (package + (name "ghc-hspec-wai") + (version "0.11.1") + (source (origin + (method url-fetch) + (uri (hackage-uri "hspec-wai" version)) + (sha256 + (base32 + "03wiksic5y9a2g6a86nsxrnajdgdvpv17w02h5qla0zp9zs6pa1j")))) + (build-system haskell-build-system) + (inputs (list ghc-quickcheck + ghc-base-compat + ghc-case-insensitive + ghc-hspec-core + ghc-hspec-expectations + ghc-http-types + ghc-wai + ghc-wai-extra)) + (native-inputs (list ghc-hspec hspec-discover)) + (home-page "https://github.com/hspec/hspec-wai#readme") + (synopsis "Experimental Hspec support for testing WAI applications") + (description "Experimental Hspec support for testing WAI applications") + (license license:expat))) + +(define ghc-morpheus-graphql + (package + (name "ghc-morpheus-graphql") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql" version)) + (sha256 + (base32 + "04qah7565dzq7v4q43zjz8778pdn5jwnway5rvz4kkibcrscfagn")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-morpheus-graphql-app + ghc-morpheus-graphql-code-gen + ghc-morpheus-graphql-core + ghc-morpheus-graphql-server + ghc-relude + ghc-unordered-containers + ghc-vector)) + (native-inputs (list ghc-morpheus-graphql-subscriptions + ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL") + (description "Build GraphQL APIs with your favourite functional language!") + (license license:expat))) + +(define ghc-morpheus-graphql-code-gen + (package + (name "ghc-morpheus-graphql-code-gen") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-code-gen" version)) + (sha256 + (base32 + "1rmxcr17xjx99aam048a4sqlwlnxjk41hx8fnb363ljid74vrcrb")))) + (build-system haskell-build-system) + (inputs (list ghc-file-embed + ghc-morpheus-graphql-code-gen-utils + ghc-morpheus-graphql-core + ghc-morpheus-graphql-server + ghc-prettyprinter + ghc-relude + ghc-unordered-containers + ghc-glob + ghc-morpheus-graphql-client + ghc-optparse-applicative + ghc-yaml)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL CLI") + (description "code generator for Morpheus GraphQL") + (license license:bsd-3))) + + +(define ghc-morpheus-graphql-core + (package + (name "ghc-morpheus-graphql-core") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-core" version)) + (sha256 + (base32 + "0dd8bifn6qwpss06hbb0r730fqfkbd4nhwsr2bsrgxc7hvzv9wi7")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-hashable + ghc-megaparsec + ghc-relude + ghc-scientific + ghc-th-lift-instances + ghc-unordered-containers + ghc-vector)) + (native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL Core") + (description "Build GraphQL APIs with your favorite functional language!") + (license license:expat))) + + +(define ghc-morpheus-graphql-app + (package + (name "ghc-morpheus-graphql-app") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-app" version)) + (sha256 + (base32 + "0dicajcqgxpv1jhnywjjs0g4p5ryv0xlrywib1xwxrb04wy9aa3f")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-hashable + ghc-megaparsec + ghc-morpheus-graphql-core + ghc-relude + ghc-scientific + ghc-th-lift-instances + ghc-unordered-containers + ghc-vector)) + (native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL App") + (description "Build GraphQL APIs with your favourite functional language!") + (license license:expat))) + + +(define ghc-morpheus-graphql-subscriptions + (package + (name "ghc-morpheus-graphql-subscriptions") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-subscriptions" version)) + (sha256 + (base32 + "0gynrshv858g36jwvmh3q2asc6ppkr7hv9w9lx1qfjqfwm7r0140")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-morpheus-graphql-app + ghc-morpheus-graphql-core + ghc-relude + ghc-unliftio-core + ghc-unordered-containers + ghc-uuid + ghc-websockets)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL Subscriptions") + (description "Build GraphQL APIs with your favourite functional language!") + (license license:expat))) + + +(define ghc-morpheus-graphql-client + (package + (name "ghc-morpheus-graphql-client") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-client" version)) + (sha256 + (base32 + "1j4r6ar6l462aq8qvxikmwyxd2f8i60gd3j0qf5pxsslgjwmjbi9")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-file-embed + ghc-modern-uri + ghc-morpheus-graphql-code-gen-utils + ghc-morpheus-graphql-core + ghc-morpheus-graphql-subscriptions + ghc-prettyprinter + ghc-relude + ghc-req + ghc-unliftio-core + ghc-unordered-containers + ghc-websockets + ghc-wuss)) + (native-inputs (list ghc-tasty ghc-tasty-hunit)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL Client") + (description "Build GraphQL APIs with your favorite functional language!") + (license license:expat))) + + +(define ghc-morpheus-graphql-tests + (package + (name "ghc-morpheus-graphql-tests") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-tests" version)) + (sha256 + (base32 + "1s9x4gcqd36gqf5w2wxiqhf7k9y44b7g7zm90y2kbclxqirs9rqf")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson ghc-relude ghc-tasty ghc-tasty-hunit + ghc-unordered-containers)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL Test") + (description "") + (license license:expat))) + + +(define ghc-morpheus-graphql-server + (package + (name "ghc-morpheus-graphql-server") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-server" version)) + (sha256 + (base32 + "1hl2c78pnx2rxx869p6ixvnyhzm46f1hzalqz2vbwrflshpmjv91")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-morpheus-graphql-app + ghc-morpheus-graphql-core + ghc-relude + ghc-unordered-containers + ghc-vector)) + (native-inputs (list ghc-file-embed ghc-morpheus-graphql-subscriptions + ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL") + (description "Build GraphQL APIs with your favourite functional language!") + (license license:expat))) + +(define ghc-relude + (package + (name "ghc-relude") + (version "1.1.0.0") + (source (origin + (method url-fetch) + (uri (hackage-uri "relude" version)) + (sha256 + (base32 + "02dn99v2qmykj0l1qmn15k36hyxccy71b7iqavfk24zgjf5g07dm")))) + (build-system haskell-build-system) + (inputs (list ghc-hashable ghc-unordered-containers)) + (native-inputs (list ghc-hedgehog ghc-doctest ghc-glob)) + (home-page "https://github.com/kowainik/relude") + (synopsis + "Safe, performant, user-friendly and lightweight Haskell Standard Library") + (description + "@__relude__@ is an alternative prelude library. If you find the default +@Prelude@ unsatisfying, despite its advantages, consider using @relude@ instead. +== Relude goals and design principles * __Productivity.__ You can be more +productive with a \"non-standard\" standard library, and @relude@ helps you with +writing safer and more efficient code faster. * __Total programming__. Usage of +[/partial +functions/](https://www.reddit.com/r/haskell/comments/5n51u3/why_are_partial_functions_as_in_head_tail_bad/) +can lead to unexpected bugs and runtime exceptions in pure code. The types of +partial functions lie about their behaviour. And even if it is not always +possible to rely only on total functions, @relude@ strives to encourage +best-practices and reduce the chances of introducing a bug. ++---------------------------------+--------------------------------------------+ +| __Partial__ | __Total__ | ++=================================+============================================+ +| @head :: [a] -> a@ | @head :: NonEmpty a -> a@ | ++---------------------------------+--------------------------------------------+ +| @tail :: [a] -> [a]@ | @tail :: NonEmpty a -> [a]@ | ++---------------------------------+--------------------------------------------+ +| @read :: Read a => String -> a@ | @readMaybe :: Read a => String -> Maybe a@ | ++---------------------------------+--------------------------------------------+ +| @fromJust :: Maybe a -> a@ | @fromMaybe :: a -> Maybe a -> a@ | ++---------------------------------+--------------------------------------------+ +* __Type-safety__. We use the /\"make invalid states unrepresentable\"/ motto as +one of our guiding principles. If it is possible, we express this concept +through the types. /Example:/ @ whenNotNull :: Applicative f => [a] -> (NonEmpty +a -> f ()) -> f () @ * __Performance.__ We prefer @Text@ over +@[String](https://www.reddit.com/r/haskell/comments/29jw0s/whats_wrong_with_string/)@, +use space-leaks-free functions (e.g. our custom performant @sum@ and +@product@), introduce @\\{\\-\\# INLINE \\#\\-\\}@ and @\\{\\-\\# SPECIALIZE \\#\\-\\}@ +pragmas where appropriate, and make efficient container types (e.g. @Map@, +@HashMap@, @Set@) more accessible. * __Minimalism__ (low number of +dependencies). We do not force users of @relude@ to stick to any specific lens +or text formatting or logging library. Where possible, @relude@ depends only on +boot libraries. The [Dependency +graph](https://raw.githubusercontent.com/kowainik/relude/main/relude-dependency-graph.png) +of @relude@ can give you a clearer picture. * __Convenience__. Despite +minimalism, we want to bring commonly used types and functions into scope, and +make available functions easier to use. Some examples of conveniences: 1. No +need to add @containers@, @unordered-containers@, @text@ and @bytestring@ to +dependencies in your @.cabal@ file to use the main API of these libraries 2. No +need to import types like @NonEmpty@, @Text@, @Set@, @Reader[T]@, @MVar@, @STM@ +3. Functions like @liftIO@, @fromMaybe@, @sortWith@ are available by default as +well 4. @IO@ actions are lifted to @MonadIO@ * __Excellent documentation.__ 1. +Tutorial 2. Migration guide from @Prelude@ 3. Haddock for every function with +examples tested by [doctest](http://hackage.haskell.org/package/doctest). 4. +Documentation regarding [internal module +structure](http://hackage.haskell.org/package/relude/docs/Relude.html) 5. +@relude@-specific [HLint](http://hackage.haskell.org/package/hlint) rules: +@[.hlint.yaml](https://github.com/kowainik/relude/blob/main/.hlint.yaml)@ * +__User-friendliness.__ Anyone should be able to quickly migrate to @relude@. +Only some basic familiarity with the common libraries like @text@ and +@containers@ should be enough (but not necessary). * __Exploration.__ We have +space to experiment with new ideas and proposals without introducing breaking +changes. @relude@ uses the approach with @Extra.*@ modules which are not +exported by default. The chosen approach makes it quite easy for us to provide +new functionality without breaking anything and let the users decide to use it +or not.") + (license license:expat))) + +(define ghc-morpheus-graphql-code-gen-utils + (package + (name "ghc-morpheus-graphql-code-gen-utils") + (version "0.27.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "morpheus-graphql-code-gen-utils" version)) + (sha256 + (base32 + "11dfnyd9wbrwjfjz1qkc188x6l4b149jsyzjwh1gqji0skzsk3f6")))) + (build-system haskell-build-system) + (inputs (list ghc-morpheus-graphql-core ghc-prettyprinter ghc-relude + ghc-unordered-containers)) + (home-page "https://morpheusgraphql.com") + (synopsis "Morpheus GraphQL CLI") + (description "code generator for Morpheus GraphQL") + (license license:bsd-3))) + +(define ghc-wuss + (package + (name "ghc-wuss") + (version "2.0.1.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "wuss" version)) + (sha256 + (base32 + "037dsx4mrp5mz2fif9zqlsp1n35g7v8749wmji281ing8jfiyl37")))) + (build-system haskell-build-system) + (inputs (list ghc-connection ghc-network ghc-websockets)) + (home-page "http://hackage.haskell.org/package/wuss") + (synopsis "Secure WebSocket (WSS) clients") + (description + "Wuss is a library that lets you easily create secure WebSocket clients over the +WSS protocol. It is a small addition to + and is +adapted from existing solutions by , , and .") + (license license:expat))) + +(define ghc-rsa + (package + (name "ghc-rsa") + (version "2.4.1") + (source (origin + (method url-fetch) + (uri (hackage-uri "RSA" version)) + (sha256 + (base32 + "0hchsqrxpfw7mqrqwscfy8ig1w2di6w3nxpzi873w0gibv2diibj")))) + (build-system haskell-build-system) + (inputs (list ghc-crypto-api ghc-crypto-pubkey-types ghc-sha)) + (native-inputs (list ghc-quickcheck ghc-tagged ghc-test-framework + ghc-test-framework-quickcheck2)) + (home-page "http://hackage.haskell.org/package/RSA") + (synopsis + "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.") + (description + "This library implements the RSA encryption and signature algorithms for +arbitrarily-sized ByteStrings. While the implementations work, they are not +necessarily the fastest ones on the planet. Particularly key generation. The +algorithms included are based of RFC 3447, or the Public-Key Cryptography +Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).") + (license license:bsd-3))) + +(define ghc-crypto-pubkey-types + (package + (name "ghc-crypto-pubkey-types") + (version "0.4.3") + (source (origin + (method url-fetch) + (uri (hackage-uri "crypto-pubkey-types" version)) + (sha256 + (base32 + "0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby")))) + (build-system haskell-build-system) + (inputs (list ghc-asn1-types ghc-asn1-encoding)) + (home-page "http://github.com/vincenthz/hs-crypto-pubkey-types") + (synopsis "Generic cryptography Public keys algorithm types") + (description "Generic cryptography public keys algorithm types") + (license license:bsd-3))) + +(define ghc-authenticate-oauth + (package + (name "ghc-authenticate-oauth") + (version "1.7") + (source (origin + (method url-fetch) + (uri (hackage-uri "authenticate-oauth" version)) + (sha256 + (base32 + "0y4v46rn0cvm0sr1v8qq1zgzllrlrr3ji5gij1xprgf1zsazcvvl")))) + (build-system haskell-build-system) + (inputs (list ghc-http-client + ghc-crypto-pubkey-types + ghc-rsa + ghc-data-default + ghc-sha + ghc-random + ghc-http-types + ghc-blaze-builder + ghc-transformers-compat)) + (home-page "http://github.com/yesodweb/authenticate") + (synopsis + "Library to authenticate with OAuth for Haskell web applications.") + (description "API docs and the README are available at +.") + (license license:bsd-3))) + +(define ghc-req + (package + (name "ghc-req") + (version "3.13.0") + (source (origin + (method url-fetch) + (uri (hackage-uri "req" version)) + (sha256 + (base32 + "1igs75bj57vs1fwpxj1765l6zkqd4r3p2gbwp6cv2l37drfxjck4")))) + (build-system haskell-build-system) + (inputs (list ghc-aeson + ghc-authenticate-oauth + ghc-blaze-builder + ghc-case-insensitive + ghc-connection + ghc-http-api-data + ghc-http-client + ghc-http-client-tls + ghc-http-types + ghc-modern-uri + ghc-monad-control + ghc-retry + ghc-transformers-base + ghc-unliftio-core)) + (native-inputs (list ghc-quickcheck ghc-hspec hspec-discover ghc-hspec-core + ghc-quickcheck ghc-hspec)) + (arguments '(#:tests? #f)) + (home-page "https://github.com/mrkkrp/req") + (synopsis "HTTP client library") + (description "HTTP client library.") + (license license:bsd-3))) + +(define ghc-modern-uri + (package + (name "ghc-modern-uri") + (version "0.3.6.0") + (source (origin + (method url-fetch) + (uri (hackage-uri "modern-uri" version)) + (sha256 + (base32 + "1lj3il9wg7v88l1hj08k07g3f76xas0gz20l2wy8z6xbpcn5ng6g")))) + (build-system haskell-build-system) + (inputs (list ghc-quickcheck + ghc-contravariant + ghc-hashable + ghc-megaparsec + ghc-profunctors + ghc-reflection + ghc-tagged)) + (native-inputs (list ghc-hspec hspec-discover ghc-hspec-megaparsec)) + (home-page "https://github.com/mrkkrp/modern-uri") + (synopsis "Modern library for working with URIs") + (description "Modern library for working with URIs.") + (license license:bsd-3))) + +(define ghc-mime-mail + (package + (name "ghc-mime-mail") + (version "0.5.1") + (source (origin + (method url-fetch) + (uri (hackage-uri "mime-mail" version)) + (sha256 + (base32 + "1s1wp8v1xlvw3r4qk1lv9zpm99ihka7a785zjl6i3fq1maqq955g")))) + (build-system haskell-build-system) + (inputs (list ghc-base64-bytestring ghc-random ghc-blaze-builder)) + (native-inputs (list ghc-hspec hspec-discover)) + (home-page "http://github.com/snoyberg/mime-mail") + (synopsis "Compose MIME email messages.") + (description + "Hackage documentation generation is not reliable. For up to date documentation, +please see: .") + (license license:expat))) + +(define ghc-smtp-mail + (package + (name "ghc-smtp-mail") + (version "0.3.0.0") + (source (origin + (method url-fetch) + (uri (hackage-uri "smtp-mail" version)) + (sha256 + (base32 + "0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4")))) + (build-system haskell-build-system) + (inputs (list ghc-base16-bytestring + ghc-base64-bytestring + ghc-connection + ghc-mime-mail + ghc-network + ghc-network-bsd + ghc-cryptonite + ghc-memory)) + (home-page "http://github.com/jhickner/smtp-mail") + (synopsis "Simple email sending via SMTP") + (description + "This packages provides a simple interface for mail over SMTP. PLease see the +README for more information.") + (license license:bsd-3))) + +datarekisteri diff --git a/guix.scm b/guix.scm deleted file mode 100644 index 1949fdd..0000000 --- a/guix.scm +++ /dev/null @@ -1,692 +0,0 @@ -; also load guix.scm for id-rekisteri -(use-modules ((guix licenses) #:prefix license:) - (guix packages) - (guix) - (guix download) - (guix build-system haskell) - (gnu packages haskell) - (gnu packages haskell-xyz) - (gnu packages haskell-crypto) - (gnu packages haskell-check) - (gnu packages haskell-web)) - -(define-public datarekisteri - (package - (name "datarekisteri") - (version "0.0.1") - (source (origin - (method url-fetch) - (uri "file:///home/saku/koodi/rekisteri/datarekisteri") - (sha256 - (base32 - "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1")))) - (build-system haskell-build-system) - (inputs (list ghc-base64 - ghc-cryptonite - ghc-email-validate - ghc-esqueleto - ghc-mime-mail - ghc-morpheus-graphql - ghc-morpheus-graphql-client - ghc-persistent - ghc-persistent-postgresql - ghc-scotty - ghc-smtp-mail - ghc-wai-cors - ghc-wai-extra - ghc-yesod - ghc-yesod-static - ghc-yesod-auth)) - (home-page "") - (synopsis "") - (description "") - (license license:agpl3+))) - -(define-public ghc-authenticate - (package - (name "ghc-authenticate") - (version "1.3.5.1") - (source (origin - (method url-fetch) - (uri (hackage-uri "authenticate" version)) - (sha256 - (base32 - "1rhbvdgwdr68gp13p5piddfdqf3l9lmx4w7k249lc98y23780c3x")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-http-conduit - ghc-case-insensitive - ghc-http-types - ghc-xml-conduit - ghc-blaze-builder - ghc-attoparsec - ghc-unordered-containers - ghc-conduit - ghc-html-conduit - ghc-resourcet - ghc-network-uri)) - (home-page "http://github.com/yesodweb/authenticate") - (synopsis "Authentication methods for Haskell web applications.") - (description "API docs and the README are available at -.") - (license license:expat))) - -(define-public ghc-yesod-auth - (package - (name "ghc-yesod-auth") - (version "1.6.11") - (source (origin - (method url-fetch) - (uri (hackage-uri "yesod-auth" version)) - (sha256 - (base32 - "0fdahk5mc63g0zsafk8axry01qaxahmclpmmwygp2lhfsjy8mby2")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-authenticate - ghc-base16-bytestring - ghc-base64-bytestring - ghc-blaze-builder - ghc-blaze-html - ghc-blaze-markup - ghc-conduit - ghc-conduit-extra - ghc-cryptonite - ghc-data-default - ghc-email-validate - ghc-file-embed - ghc-http-client - ghc-http-client-tls - ghc-http-conduit - ghc-http-types - ghc-memory - ghc-nonce - ghc-persistent - ghc-random - ghc-safe - ghc-shakespeare - ghc-unliftio - ghc-unliftio-core - ghc-unordered-containers - ghc-wai - ghc-yesod-core - ghc-yesod-form - ghc-yesod-persistent - ghc-network-uri)) - (home-page "http://www.yesodweb.com/") - (synopsis "Authentication for Yesod.") - (description "API docs and the README are available at -") - (license license:expat))) - -(define-public ghc-scotty - (package - (name "ghc-scotty") - (version "0.12") - (source (origin - (method url-fetch) - (uri (hackage-uri "scotty" version)) - (sha256 - (base32 - "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-base-compat-batteries - ghc-blaze-builder - ghc-case-insensitive - ghc-data-default-class - ghc-fail - ghc-http-types - ghc-monad-control - ghc-nats - ghc-network - ghc-regex-compat - ghc-transformers-base - ghc-transformers-compat - ghc-wai - ghc-wai-extra - ghc-warp)) - (native-inputs (list ghc-async ghc-hspec ghc-hspec-wai ghc-lifted-base hspec-discover)) - (arguments - `(#:cabal-revision ("7" - "1i8icc612w4dbmqmnf99drqpmjvhjnkmqgk9xr63amj8jkz5lp4m"))) - (home-page "https://github.com/scotty-web/scotty") - (synopsis - "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp") - (description - "This package provides a Haskell web framework inspired by Ruby's Sinatra, using -WAI and Warp. . @ {-# LANGUAGE OverloadedStrings #-} . import -Web.Scotty . import Data.Monoid (mconcat) . main = scotty 3000 $ get -"/:word" $ do beam <- param "word" - html $ mconcat ["<h1>Scotty, ", beam, " -me up!</h1>"] @ . . Scotty is the cheap and cheerful way to write -RESTful, declarative web applications. . * A page is as simple as defining the -verb, url pattern, and Text content. . * It is template-language agnostic. -Anything that returns a Text value will do. . * Conforms to WAI Application -interface. . * Uses very fast Warp webserver by default. . As for the name: -Sinatra + Warp = Scotty. . [WAI] . -[Warp] ") - (license license:bsd-3))) - -(define-public ghc-hspec-wai - (package - (name "ghc-hspec-wai") - (version "0.11.1") - (source (origin - (method url-fetch) - (uri (hackage-uri "hspec-wai" version)) - (sha256 - (base32 - "03wiksic5y9a2g6a86nsxrnajdgdvpv17w02h5qla0zp9zs6pa1j")))) - (build-system haskell-build-system) - (inputs (list ghc-quickcheck - ghc-base-compat - ghc-case-insensitive - ghc-hspec-core - ghc-hspec-expectations - ghc-http-types - ghc-wai - ghc-wai-extra)) - (native-inputs (list ghc-hspec hspec-discover)) - (home-page "https://github.com/hspec/hspec-wai#readme") - (synopsis "Experimental Hspec support for testing WAI applications") - (description "Experimental Hspec support for testing WAI applications") - (license license:expat))) - -(define-public ghc-morpheus-graphql - (package - (name "ghc-morpheus-graphql") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql" version)) - (sha256 - (base32 - "04qah7565dzq7v4q43zjz8778pdn5jwnway5rvz4kkibcrscfagn")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-morpheus-graphql-app - ghc-morpheus-graphql-code-gen - ghc-morpheus-graphql-core - ghc-morpheus-graphql-server - ghc-relude - ghc-unordered-containers - ghc-vector)) - (native-inputs (list ghc-morpheus-graphql-subscriptions - ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL") - (description "Build GraphQL APIs with your favourite functional language!") - (license license:expat))) - -(define-public ghc-morpheus-graphql-code-gen - (package - (name "ghc-morpheus-graphql-code-gen") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-code-gen" version)) - (sha256 - (base32 - "1rmxcr17xjx99aam048a4sqlwlnxjk41hx8fnb363ljid74vrcrb")))) - (build-system haskell-build-system) - (inputs (list ghc-file-embed - ghc-morpheus-graphql-code-gen-utils - ghc-morpheus-graphql-core - ghc-morpheus-graphql-server - ghc-prettyprinter - ghc-relude - ghc-unordered-containers - ghc-glob - ghc-morpheus-graphql-client - ghc-optparse-applicative - ghc-yaml)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL CLI") - (description "code generator for Morpheus GraphQL") - (license license:bsd-3))) - - -(define-public ghc-morpheus-graphql-core - (package - (name "ghc-morpheus-graphql-core") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-core" version)) - (sha256 - (base32 - "0dd8bifn6qwpss06hbb0r730fqfkbd4nhwsr2bsrgxc7hvzv9wi7")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-hashable - ghc-megaparsec - ghc-relude - ghc-scientific - ghc-th-lift-instances - ghc-unordered-containers - ghc-vector)) - (native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL Core") - (description "Build GraphQL APIs with your favorite functional language!") - (license license:expat))) - - -(define-public ghc-morpheus-graphql-app - (package - (name "ghc-morpheus-graphql-app") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-app" version)) - (sha256 - (base32 - "0dicajcqgxpv1jhnywjjs0g4p5ryv0xlrywib1xwxrb04wy9aa3f")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-hashable - ghc-megaparsec - ghc-morpheus-graphql-core - ghc-relude - ghc-scientific - ghc-th-lift-instances - ghc-unordered-containers - ghc-vector)) - (native-inputs (list ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL App") - (description "Build GraphQL APIs with your favourite functional language!") - (license license:expat))) - - -(define-public ghc-morpheus-graphql-subscriptions - (package - (name "ghc-morpheus-graphql-subscriptions") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-subscriptions" version)) - (sha256 - (base32 - "0gynrshv858g36jwvmh3q2asc6ppkr7hv9w9lx1qfjqfwm7r0140")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-morpheus-graphql-app - ghc-morpheus-graphql-core - ghc-relude - ghc-unliftio-core - ghc-unordered-containers - ghc-uuid - ghc-websockets)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL Subscriptions") - (description "Build GraphQL APIs with your favourite functional language!") - (license license:expat))) - - -(define-public ghc-morpheus-graphql-client - (package - (name "ghc-morpheus-graphql-client") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-client" version)) - (sha256 - (base32 - "1j4r6ar6l462aq8qvxikmwyxd2f8i60gd3j0qf5pxsslgjwmjbi9")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-file-embed - ghc-modern-uri - ghc-morpheus-graphql-code-gen-utils - ghc-morpheus-graphql-core - ghc-morpheus-graphql-subscriptions - ghc-prettyprinter - ghc-relude - ghc-req - ghc-unliftio-core - ghc-unordered-containers - ghc-websockets - ghc-wuss)) - (native-inputs (list ghc-tasty ghc-tasty-hunit)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL Client") - (description "Build GraphQL APIs with your favorite functional language!") - (license license:expat))) - - -(define-public ghc-morpheus-graphql-tests - (package - (name "ghc-morpheus-graphql-tests") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-tests" version)) - (sha256 - (base32 - "1s9x4gcqd36gqf5w2wxiqhf7k9y44b7g7zm90y2kbclxqirs9rqf")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson ghc-relude ghc-tasty ghc-tasty-hunit - ghc-unordered-containers)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL Test") - (description "") - (license license:expat))) - - -(define-public ghc-morpheus-graphql-server - (package - (name "ghc-morpheus-graphql-server") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-server" version)) - (sha256 - (base32 - "1hl2c78pnx2rxx869p6ixvnyhzm46f1hzalqz2vbwrflshpmjv91")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-morpheus-graphql-app - ghc-morpheus-graphql-core - ghc-relude - ghc-unordered-containers - ghc-vector)) - (native-inputs (list ghc-file-embed ghc-morpheus-graphql-subscriptions - ghc-morpheus-graphql-tests ghc-tasty ghc-tasty-hunit)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL") - (description "Build GraphQL APIs with your favourite functional language!") - (license license:expat))) - -(define-public ghc-relude - (package - (name "ghc-relude") - (version "1.1.0.0") - (source (origin - (method url-fetch) - (uri (hackage-uri "relude" version)) - (sha256 - (base32 - "02dn99v2qmykj0l1qmn15k36hyxccy71b7iqavfk24zgjf5g07dm")))) - (build-system haskell-build-system) - (inputs (list ghc-hashable ghc-unordered-containers)) - (native-inputs (list ghc-hedgehog ghc-doctest ghc-glob)) - (home-page "https://github.com/kowainik/relude") - (synopsis - "Safe, performant, user-friendly and lightweight Haskell Standard Library") - (description - "@__relude__@ is an alternative prelude library. If you find the default -@Prelude@ unsatisfying, despite its advantages, consider using @relude@ instead. -== Relude goals and design principles * __Productivity.__ You can be more -productive with a \"non-standard\" standard library, and @relude@ helps you with -writing safer and more efficient code faster. * __Total programming__. Usage of -[/partial -functions/](https://www.reddit.com/r/haskell/comments/5n51u3/why_are_partial_functions_as_in_head_tail_bad/) -can lead to unexpected bugs and runtime exceptions in pure code. The types of -partial functions lie about their behaviour. And even if it is not always -possible to rely only on total functions, @relude@ strives to encourage -best-practices and reduce the chances of introducing a bug. -+---------------------------------+--------------------------------------------+ -| __Partial__ | __Total__ | -+=================================+============================================+ -| @head :: [a] -> a@ | @head :: NonEmpty a -> a@ | -+---------------------------------+--------------------------------------------+ -| @tail :: [a] -> [a]@ | @tail :: NonEmpty a -> [a]@ | -+---------------------------------+--------------------------------------------+ -| @read :: Read a => String -> a@ | @readMaybe :: Read a => String -> Maybe a@ | -+---------------------------------+--------------------------------------------+ -| @fromJust :: Maybe a -> a@ | @fromMaybe :: a -> Maybe a -> a@ | -+---------------------------------+--------------------------------------------+ -* __Type-safety__. We use the /\"make invalid states unrepresentable\"/ motto as -one of our guiding principles. If it is possible, we express this concept -through the types. /Example:/ @ whenNotNull :: Applicative f => [a] -> (NonEmpty -a -> f ()) -> f () @ * __Performance.__ We prefer @Text@ over -@[String](https://www.reddit.com/r/haskell/comments/29jw0s/whats_wrong_with_string/)@, -use space-leaks-free functions (e.g. our custom performant @sum@ and -@product@), introduce @\\{\\-\\# INLINE \\#\\-\\}@ and @\\{\\-\\# SPECIALIZE \\#\\-\\}@ -pragmas where appropriate, and make efficient container types (e.g. @Map@, -@HashMap@, @Set@) more accessible. * __Minimalism__ (low number of -dependencies). We do not force users of @relude@ to stick to any specific lens -or text formatting or logging library. Where possible, @relude@ depends only on -boot libraries. The [Dependency -graph](https://raw.githubusercontent.com/kowainik/relude/main/relude-dependency-graph.png) -of @relude@ can give you a clearer picture. * __Convenience__. Despite -minimalism, we want to bring commonly used types and functions into scope, and -make available functions easier to use. Some examples of conveniences: 1. No -need to add @containers@, @unordered-containers@, @text@ and @bytestring@ to -dependencies in your @.cabal@ file to use the main API of these libraries 2. No -need to import types like @NonEmpty@, @Text@, @Set@, @Reader[T]@, @MVar@, @STM@ -3. Functions like @liftIO@, @fromMaybe@, @sortWith@ are available by default as -well 4. @IO@ actions are lifted to @MonadIO@ * __Excellent documentation.__ 1. -Tutorial 2. Migration guide from @Prelude@ 3. Haddock for every function with -examples tested by [doctest](http://hackage.haskell.org/package/doctest). 4. -Documentation regarding [internal module -structure](http://hackage.haskell.org/package/relude/docs/Relude.html) 5. -@relude@-specific [HLint](http://hackage.haskell.org/package/hlint) rules: -@[.hlint.yaml](https://github.com/kowainik/relude/blob/main/.hlint.yaml)@ * -__User-friendliness.__ Anyone should be able to quickly migrate to @relude@. -Only some basic familiarity with the common libraries like @text@ and -@containers@ should be enough (but not necessary). * __Exploration.__ We have -space to experiment with new ideas and proposals without introducing breaking -changes. @relude@ uses the approach with @Extra.*@ modules which are not -exported by default. The chosen approach makes it quite easy for us to provide -new functionality without breaking anything and let the users decide to use it -or not.") - (license license:expat))) - -(define-public ghc-morpheus-graphql-code-gen-utils - (package - (name "ghc-morpheus-graphql-code-gen-utils") - (version "0.27.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "morpheus-graphql-code-gen-utils" version)) - (sha256 - (base32 - "11dfnyd9wbrwjfjz1qkc188x6l4b149jsyzjwh1gqji0skzsk3f6")))) - (build-system haskell-build-system) - (inputs (list ghc-morpheus-graphql-core ghc-prettyprinter ghc-relude - ghc-unordered-containers)) - (home-page "https://morpheusgraphql.com") - (synopsis "Morpheus GraphQL CLI") - (description "code generator for Morpheus GraphQL") - (license license:bsd-3))) - -(define-public ghc-wuss - (package - (name "ghc-wuss") - (version "2.0.1.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "wuss" version)) - (sha256 - (base32 - "037dsx4mrp5mz2fif9zqlsp1n35g7v8749wmji281ing8jfiyl37")))) - (build-system haskell-build-system) - (inputs (list ghc-connection ghc-network ghc-websockets)) - (home-page "http://hackage.haskell.org/package/wuss") - (synopsis "Secure WebSocket (WSS) clients") - (description - "Wuss is a library that lets you easily create secure WebSocket clients over the -WSS protocol. It is a small addition to - and is -adapted from existing solutions by , , and .") - (license license:expat))) - -(define-public ghc-rsa - (package - (name "ghc-rsa") - (version "2.4.1") - (source (origin - (method url-fetch) - (uri (hackage-uri "RSA" version)) - (sha256 - (base32 - "0hchsqrxpfw7mqrqwscfy8ig1w2di6w3nxpzi873w0gibv2diibj")))) - (build-system haskell-build-system) - (inputs (list ghc-crypto-api ghc-crypto-pubkey-types ghc-sha)) - (native-inputs (list ghc-quickcheck ghc-tagged ghc-test-framework - ghc-test-framework-quickcheck2)) - (home-page "http://hackage.haskell.org/package/RSA") - (synopsis - "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.") - (description - "This library implements the RSA encryption and signature algorithms for -arbitrarily-sized ByteStrings. While the implementations work, they are not -necessarily the fastest ones on the planet. Particularly key generation. The -algorithms included are based of RFC 3447, or the Public-Key Cryptography -Standard for RSA, version 2.1 (a.k.a, PKCS#1 v2.1).") - (license license:bsd-3))) - -(define-public ghc-crypto-pubkey-types - (package - (name "ghc-crypto-pubkey-types") - (version "0.4.3") - (source (origin - (method url-fetch) - (uri (hackage-uri "crypto-pubkey-types" version)) - (sha256 - (base32 - "0q0wlzjmpx536h1zcdzrpxjkvqw8abj8z0ci38138kpch4igbnby")))) - (build-system haskell-build-system) - (inputs (list ghc-asn1-types ghc-asn1-encoding)) - (home-page "http://github.com/vincenthz/hs-crypto-pubkey-types") - (synopsis "Generic cryptography Public keys algorithm types") - (description "Generic cryptography public keys algorithm types") - (license license:bsd-3))) - -(define-public ghc-authenticate-oauth - (package - (name "ghc-authenticate-oauth") - (version "1.7") - (source (origin - (method url-fetch) - (uri (hackage-uri "authenticate-oauth" version)) - (sha256 - (base32 - "0y4v46rn0cvm0sr1v8qq1zgzllrlrr3ji5gij1xprgf1zsazcvvl")))) - (build-system haskell-build-system) - (inputs (list ghc-http-client - ghc-crypto-pubkey-types - ghc-rsa - ghc-data-default - ghc-sha - ghc-random - ghc-http-types - ghc-blaze-builder - ghc-transformers-compat)) - (home-page "http://github.com/yesodweb/authenticate") - (synopsis - "Library to authenticate with OAuth for Haskell web applications.") - (description "API docs and the README are available at -.") - (license license:bsd-3))) - -(define-public ghc-req - (package - (name "ghc-req") - (version "3.13.0") - (source (origin - (method url-fetch) - (uri (hackage-uri "req" version)) - (sha256 - (base32 - "1igs75bj57vs1fwpxj1765l6zkqd4r3p2gbwp6cv2l37drfxjck4")))) - (build-system haskell-build-system) - (inputs (list ghc-aeson - ghc-authenticate-oauth - ghc-blaze-builder - ghc-case-insensitive - ghc-connection - ghc-http-api-data - ghc-http-client - ghc-http-client-tls - ghc-http-types - ghc-modern-uri - ghc-monad-control - ghc-retry - ghc-transformers-base - ghc-unliftio-core)) - (native-inputs (list ghc-quickcheck ghc-hspec hspec-discover ghc-hspec-core - ghc-quickcheck ghc-hspec)) - (arguments '(#:tests? #f)) - (home-page "https://github.com/mrkkrp/req") - (synopsis "HTTP client library") - (description "HTTP client library.") - (license license:bsd-3))) - -(define-public ghc-modern-uri - (package - (name "ghc-modern-uri") - (version "0.3.6.0") - (source (origin - (method url-fetch) - (uri (hackage-uri "modern-uri" version)) - (sha256 - (base32 - "1lj3il9wg7v88l1hj08k07g3f76xas0gz20l2wy8z6xbpcn5ng6g")))) - (build-system haskell-build-system) - (inputs (list ghc-quickcheck - ghc-contravariant - ghc-hashable - ghc-megaparsec - ghc-profunctors - ghc-reflection - ghc-tagged)) - (native-inputs (list ghc-hspec hspec-discover ghc-hspec-megaparsec)) - (home-page "https://github.com/mrkkrp/modern-uri") - (synopsis "Modern library for working with URIs") - (description "Modern library for working with URIs.") - (license license:bsd-3))) - -(define-public ghc-mime-mail - (package - (name "ghc-mime-mail") - (version "0.5.1") - (source (origin - (method url-fetch) - (uri (hackage-uri "mime-mail" version)) - (sha256 - (base32 - "1s1wp8v1xlvw3r4qk1lv9zpm99ihka7a785zjl6i3fq1maqq955g")))) - (build-system haskell-build-system) - (inputs (list ghc-base64-bytestring ghc-random ghc-blaze-builder)) - (native-inputs (list ghc-hspec hspec-discover)) - (home-page "http://github.com/snoyberg/mime-mail") - (synopsis "Compose MIME email messages.") - (description - "Hackage documentation generation is not reliable. For up to date documentation, -please see: .") - (license license:expat))) - -(define-public ghc-smtp-mail - (package - (name "ghc-smtp-mail") - (version "0.3.0.0") - (source (origin - (method url-fetch) - (uri (hackage-uri "smtp-mail" version)) - (sha256 - (base32 - "0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4")))) - (build-system haskell-build-system) - (inputs (list ghc-base16-bytestring - ghc-base64-bytestring - ghc-connection - ghc-mime-mail - ghc-network - ghc-network-bsd - ghc-cryptonite - ghc-memory)) - (home-page "http://github.com/jhickner/smtp-mail") - (synopsis "Simple email sending via SMTP") - (description - "This packages provides a simple interface for mail over SMTP. PLease see the -README for more information.") - (license license:bsd-3))) - -datarekisteri diff --git a/guix.scm b/guix.scm new file mode 120000 index 0000000..c35cd6e --- /dev/null +++ b/guix.scm @@ -0,0 +1 @@ +.guix/modules/datarekisteri-package.scm \ No newline at end of file