;;; Copyright © 2022 Anders Ågren Thuné ;;; Copyright © 2024-present Hashirama Senju (define-module (ajatt packages haskell) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages fontutils) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages pkg-config) #:use-module (gnu packages webkit) #:use-module (gnu packages wm) #:use-module (gnu packages xorg) #:use-module (guix build-system haskell) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix utils)) (define-public ghc-xml-helpers (package (name "ghc-xml-helpers") (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/xml-helpers/xml-helpers-" version ".tar.gz")) (sha256 (base32 "0rrk0j7m8ws86hbjw0l4ryq4m9i8llhsag2sfisy5r1iv2zwa0lv")))) (build-system haskell-build-system) (inputs (list ghc-xml)) (home-page "http://github.com/acw/xml-helpers") (synopsis "Some useful helper functions for the xml library.") (description "Included are some folds and maps I've found useful in parsing XML data.") (license license:bsd-3))) (define-public ghc-xdg-desktop-entry (package (name "ghc-xdg-desktop-entry") (version "0.1.1.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/xdg-desktop-entry/xdg-desktop-entry-" version ".tar.gz")) (sha256 (base32 "0xlniirgj01v02dp6wx8iw038p4mx2pa3rmwfv3g7k5raa7gzapb")))) (build-system haskell-build-system) (inputs (list ghc-configfile ghc-either ghc-multimap ghc-safe)) (home-page "http://hackage.haskell.org/package/xdg-desktop-entry") (synopsis "Parse files conforming to the xdg desktop entry spec") (description "") (license license:bsd-3))) (define-public ghc-tuple (package (name "ghc-tuple") (version "0.3.0.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/tuple/tuple-" version ".tar.gz")) (sha256 (base32 "094nx29aahyrvbcn7yca9zs2a5rxz1is7510w1q43rpvza7hdjrg")))) (build-system haskell-build-system) (inputs (list ghc-onetuple)) (home-page "http://hackage.haskell.org/package/tuple") (synopsis "Various functions on tuples") (description "Various useful functions on tuples, overloaded on tuple size.") (license license:bsd-3))) (define-public ghc-scotty (package (name "ghc-scotty") (version "0.12") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/scotty/scotty-" version ".tar.gz")) (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 ("6" "15gwvx9gdk4vxh1x2n5xvnrix8m0wl96a4aqbdmdfrka43sywfma"))) (home-page "https://github.com/scotty-web/scotty") (synopsis "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp") (description "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-time-units (package (name "ghc-time-units") (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/time-units/time-units-" version ".tar.gz")) (sha256 (base32 "16g0i6r6vj9w4lbn12jqrhgbbjjca8wbzq6546dz08aks1yrk0g1")))) (build-system haskell-build-system) (home-page "http://github.com/acw/time-units") (synopsis "A basic library for defining units of time as types.") (description "In many cases, it is useful (either for error checking or documentation reasons) to define input and output types as having a particular unit of time. In addition, by creating a type class defining type units, this library should make it easier to separate the units of time the developer wants to think in versus the units of time the library author wants to think in.") (license license:bsd-3))) (define-public ghc-rate-limit (package (name "ghc-rate-limit") (version "1.4.3") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/rate-limit/rate-limit-" version ".tar.gz")) (sha256 (base32 "0xhksvhl0cr5kfvdfnlk78jrn4kvj2h54x19ixp356b4xxijdy9x")))) (build-system haskell-build-system) (inputs (list ghc-time-units)) (home-page "http://github.com/acw/rate-limit") (synopsis "A basic library for rate-limiting IO actions.") (description "In many cases, it is useful, necessary, or simply nice to limit how frequently you perform some action. For example, you may want to limit how often your program makes a request of some web site. This library is intended as a general-purpose mechanism for rate-limiting IO actions.") (license license:bsd-3))) (define-public ghc-multimap (package (name "ghc-multimap") (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/multimap/multimap-" version ".tar.gz")) (sha256 (base32 "0d3l5q4yvmywl6i9ip96zz0fvhjdh00mfbbniphbjxsi8wlwack3")))) (build-system haskell-build-system) (home-page "http://hub.darcs.net/scravy/multimap") (synopsis "A multimap.") (description "This is a simple implementation of a multimap, based on \"Data.Map\". . [@v1.1@] @!@ had its arguments flipped. Fixed. Also added @fromMap@. . [@v1.2@] Added \"Data.SetMap\", renamed @Multimap@ to \"Data.MultiMap\". Fixed the type of @delete@. Derive instances for @Data@ and @Typeable@. . [@v1.2.1@] Fixed typos in the documentation.") (license license:expat))) (define-public ghc-bytestring-to-vector (package (name "ghc-bytestring-to-vector") (version "0.3.0.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/bytestring-to-vector/bytestring-to-vector-" version ".tar.gz")) (sha256 (base32 "0ji836sl72wlhy6yay11kl86w0nrcdc1lafbi94bx9c8rpf5pyyc")))) (build-system haskell-build-system) (inputs (list ghc-vector)) (native-inputs (list ghc-byteorder ghc-quickcheck)) (home-page "https://github.com/sheyll/bytestring-to-vector") (synopsis "Convert between ByteString and Vector.Storable without copying") (description "This library allows conversion between the types from @Data.ByteString@ (package @bytestring@) and @Data.Vector.Storable@ (package @vector@) without copying the underlying data. This is useful, for example, when @ByteString@ IO produces or consumes vectors of numbers in native byte order. . The conversion relies on the fact that @ByteString@ and @Vector@ use their respective @ForeignPtr@s in compatible ways. . This library is a fork of the @spool@ package written by Keegan McAllister.") (license license:bsd-3))) (define-public ghc-primitive-unaligned (package (name "ghc-primitive-unaligned") (version "0.1.1.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/primitive-unaligned/primitive-unaligned-" version ".tar.gz")) (sha256 (base32 "1f3a46d9dr7x1k8b6ixnp9jzxkppx3g27qsxq4f244ndnf2jnchl")))) (build-system haskell-build-system) (inputs (list ghc-primitive)) (home-page "https://github.com/haskell-primitive/primitive-unaligned") (synopsis "Unaligned access to primitive arrays") (description "Unaligned access to primitive arrays. The offsets are given in bytes rather than elements.") (license license:bsd-3))) (define-public ghc-byte-order (package (name "ghc-byte-order") (version "0.1.2.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/byte-order/byte-order-" version ".tar.gz")) (sha256 (base32 "1nnq4qmqmkv61xcyxrh14s6hg7rbnjkna6mwlrqh1rr59pikn45w")))) (build-system haskell-build-system) (inputs (list ghc-primitive ghc-primitive-unaligned)) (home-page "https://github.com/andrewthad/byte-order") (synopsis "Portable big-endian and little-endian conversions") (description "This library provides an interface to portably work with byte arrays whose contents are known to be of a fixed endianness. There are two ways to use this module. See the `System.ByteOrder` module for more documentation.") (license license:bsd-3))) (define-public ghc-status-notifier-item (package (name "ghc-status-notifier-item") (version "0.3.1.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/status-notifier-item/status-notifier-item-" version ".tar.gz")) (sha256 (base32 "1x3zqa2b9vl5mirfbh2bmyali47jpfcqsw4xxgbmsgz9jiffpda9")))) (build-system haskell-build-system) (inputs (list ghc-byte-order ghc-bytestring-to-vector ghc-dbus ghc-hslogger ghc-lens ghc-vector ghc-optparse-applicative ghc-dbus-hslogger)) (home-page "https://github.com/IvanMalison/status-notifier-item#readme") (synopsis "A wrapper over the StatusNotifierItem/libappindicator dbus specification") (description "Please see the README on Github at ") (license license:bsd-3))) (define-public ghc-gtk-strut (package (name "ghc-gtk-strut") (version "0.1.3.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gtk-strut/gtk-strut-" version ".tar.gz")) (sha256 (base32 "19p3w1zvnaazfd01yy4cl00sl53xc7kqgqhsw7l3psadmwk6x4w1")))) (build-system haskell-build-system) (inputs (list ghc-gi-gdk ghc-gi-gtk)) (home-page "https://github.com/IvanMalison/gtk-strut#readme") (synopsis "Libary for creating strut windows with gi-gtk") (description "Please see the README on Github at ") (license license:bsd-3))) (define-public ghc-gi-dbusmenu (package (name "ghc-gi-dbusmenu") (version "0.4.14") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-dbusmenu/gi-dbusmenu-" version ".tar.gz")) (sha256 (base32 "1n2bxi7cwj32ncalqwid3igk0ssh4pc81z132255216apryszq13")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-glib ghc-gi-gobject gobject-introspection libdbusmenu glib)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Dbusmenu bindings") (description "Bindings for libdbusmenu, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-dbusmenugtk3 (package (name "ghc-gi-dbusmenugtk3") (version "0.4.15") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-dbusmenugtk3/gi-dbusmenugtk3-" version ".tar.gz")) (sha256 (base32 "1hq7v2lii8n6nn1dhdg42z2d3in8xahkhm6xk4hmfj7abzfghz7z")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-glib ghc-gi-gobject ghc-gi-gtk ghc-gi-dbusmenu ghc-gi-atk ghc-gi-gdk ghc-gi-gdkpixbuf gobject-introspection libdbusmenu gtk+)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "DbusmenuGtk bindings") (description "Bindings for libdbusgtk3, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gtk-sni-tray (package (name "ghc-gtk-sni-tray") (version "0.1.8.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gtk-sni-tray/gtk-sni-tray-" version ".tar.gz")) (sha256 (base32 "0b8b8hvsv60zvnjidqm1qchxdgqdf5gcmm5pz8fvrvcjqq27b1xa")))) (build-system haskell-build-system) (inputs (list ghc-dbus ghc-enclosed-exceptions ghc-gi-cairo ghc-gi-cairo-connector ghc-gi-cairo-render ghc-gi-dbusmenugtk3 ghc-gi-gdk ghc-gi-gdkpixbuf ghc-gi-glib ghc-gi-gtk ghc-gtk-strut ghc-haskell-gi ghc-haskell-gi-base ghc-hslogger ghc-status-notifier-item ghc-transformers-base ghc-dbus-hslogger ghc-optparse-applicative gtk+)) (native-inputs (list pkg-config)) (home-page "https://github.com/IvanMalison/gtk-sni-tray#readme") (synopsis "A standalone StatusNotifierItem/AppIndicator tray") (description "Please see the README on Github at ") (license license:bsd-3))) (define-public ghc-gi-gtk-hs (package (name "ghc-gi-gtk-hs") (version "0.3.16") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gtk-hs/gi-gtk-hs-" version ".tar.gz")) (sha256 (base32 "1ph9fq2lwa16pq68vkmp2843n0hjx89zfjmxs80lsv41bkvza8qy")))) (build-system haskell-build-system) (inputs (list ghc-base-compat ghc-haskell-gi-base ghc-gi-glib ghc-gi-gobject ghc-gi-gdk ghc-gi-gtk ghc-gi-gdkpixbuf)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "A wrapper for gi-gtk, adding a few more idiomatic API parts on top") (description "A wrapper for gi-gtk, adding a few more idiomatic API parts on top") (license license:lgpl2.1))) (define-public ghc-gi-atk (package (name "ghc-gi-atk") (version "2.0.28") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-atk/gi-atk-" version ".tar.gz")) (sha256 (base32 "0dkzchgsbb7f4b4p56ni4s1vmpp7ln722djcbcp5zazqbd0s9vfd")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gobject ghc-gi-glib gobject-introspection atk)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Atk bindings") (description "Bindings for Atk, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gtk (package (name "ghc-gi-gtk") (version "4.0.6") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gtk/gi-gtk-" version ".tar.gz")) (sha256 (base32 "146x3xp12jl416gl75mdx6jgnh0ayh9s64f7nl5ccw5r7dw8fz6f")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-cairo ghc-gi-pango ghc-gi-gio ghc-gi-gdk ghc-gi-gdkpixbuf ghc-gi-graphene ghc-gi-gsk ghc-gi-gobject ghc-gi-glib ghc-gi-atk gobject-introspection gtk)) (native-inputs (list pkg-config gtk)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Gtk bindings") (description "Bindings for Gtk, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gtksource (package (name "ghc-gi-gtksource") (version "5.0.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gtksource/gi-gtksource-" version ".tar.gz")) (sha256 (base32 "0s5xc3d7i2a4ysa2m5kd9qsr2g78yiqj4rfjy06n0kqsmymprvj2")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-cairo ghc-gi-pango ghc-gi-gio ghc-gi-gdk ghc-gi-gdkpixbuf ghc-gi-graphene ghc-gi-gsk ghc-gi-gobject ghc-gi-glib ghc-gi-gtk ghc-gi-atk ghc-transformers ghc-bytestring-builder gobject-introspection gtksourceview gtk glib)) (native-inputs (list pkg-config gtk glib ghc-gi-glib gtksourceview gobject-introspection)) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'set-configure-environment-variables (lambda _ (setenv "LD_LIBRARY_PATH" (getenv "LIBRARY_PATH")) #t))))) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Bindings for GtkSource") (description "Bindings for GtkSource, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-xlib (package (name "ghc-gi-xlib") (version "2.0.14") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-xlib/gi-xlib-" version ".tar.gz")) (sha256 (base32 "1h6kpg0mm16b5rz7ixi5qj8y0is96cwkkpgwcl8m8ycjscsgfj88")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading gobject-introspection gdk-pixbuf libx11)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "xlib bindings") (description "Bindings for xlib, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gdkx11 (package (name "ghc-gi-gdkx11") (version "4.0.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gdkx11/gi-gdkx11-" version ".tar.gz")) (sha256 (base32 "07r47fpx6rvsahgnv8g741fl6h1s6y1xrlyacbpc3d8cv7x4aax2")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gobject ghc-gi-gdk ghc-gi-gio ghc-gi-cairo ghc-gi-xlib gobject-introspection gtk+)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "GdkX11 bindings") (description "Bindings for GdkX11, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gmodule (package (name "ghc-gi-gmodule") (version "2.0.6") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gmodule/gi-gmodule-" version ".tar.gz")) (sha256 (base32 "1q4a71fimdgrdfzpxf63fkjya2n624b2kyadrcpn17518hhagk7l")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-glib gobject-introspection glib)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "GModule bindings") (description "Bindings for GModule, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gdkpixbuf (package (name "ghc-gi-gdkpixbuf") (version "2.0.32") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gdkpixbuf/gi-gdkpixbuf-" version ".tar.gz")) (sha256 (base32 "1yxsrhxv5ndj60bv6djnhbmyh3a6ahmdkyfw5xbr3wy8hh9vc7l3")))) (build-system haskell-build-system) (inputs (list gdk-pixbuf ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gio ghc-gi-gobject ghc-gi-glib ghc-gi-gmodule gobject-introspection)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "GdkPixbuf bindings") (description "Bindings for GdkPixbuf, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gio (package (name "ghc-gi-gio") (version "2.0.35") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gio/gi-gio-" version ".tar.gz")) (sha256 (base32 "07b4gg1wbb5mz63xpvjjdbdp0z9wci5jckr1gr0qxrizyc3vv2vi")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gobject ghc-gi-glib gobject-introspection glib)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Gio bindings") (description "Bindings for Gio, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-freetype2 (package (name "ghc-gi-freetype2") (version "2.0.5") (source (origin (method url-fetch) (uri (hackage-uri "gi-freetype2" version)) (sha256 (base32 "115yjlhb507wp21hcngygr0mrq4vdpnbx24gyfd5wwba9ny38a9j")))) (build-system haskell-build-system) (properties '((upstream-name . "gi-freetype2"))) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-transformers ghc-bytestring-builder freetype)) (native-inputs (list gobject-introspection pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "freetype2 bindings") (description "Bindings for freetype2, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-harfbuzz (package (name "ghc-gi-harfbuzz") (version "0.0.10") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-harfbuzz/gi-harfbuzz-" version ".tar.gz")) (sha256 (base32 "1b7mmva40a3j1qm2155sy106wwrklj2p5fjwdzlkma8bnr6r2mqx")))) (build-system haskell-build-system) (inputs (list freetype ghc-gi-freetype2 ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gobject ghc-gi-glib gobject-introspection harfbuzz)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "HarfBuzz bindings") (description "Bindings for HarfBuzz, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-glib (package (name "ghc-gi-glib") (version "2.0.30") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-glib/gi-glib-" version ".tar.gz")) (sha256 (base32 "1l9lh3rkf4z6mw16g3ghrzsipbn4iv7jrqwcnv0mg12sa5y4slbp")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading gobject-introspection glib)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "GLib bindings") (description "Bindings for GLib, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gobject (package (name "ghc-gi-gobject") (version "2.0.31") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gobject/gi-gobject-" version ".tar.gz")) (sha256 (base32 "1vhdbvcr33gi2cvf31q1zbgkd0gpgcrwnqi59ylrsw6xmblndhdh")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-glib gobject-introspection glib)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "GObject bindings") (description "Bindings for GObject, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-pango (package (name "ghc-gi-pango") (version "1.0.30") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-pango/gi-pango-" version ".tar.gz")) (sha256 (base32 "1kp3jnnjik1caiax3j548aypn77qzi1l8r9b2zki95s2yg5rpv9p")))) (build-system haskell-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'set-configure-environment-variables (lambda _ (setenv "LD_LIBRARY_PATH" (getenv "LIBRARY_PATH")) #t))))) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-gobject ghc-gi-glib ghc-gi-gio ghc-gi-harfbuzz gobject-introspection pango)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Pango bindings") (description "Bindings for Pango, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gsk (package (name "ghc-gi-gsk") (version "4.0.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gsk/gi-gsk-" version ".tar.gz")) (sha256 (base32 "0akmlbjapiqnn4lfh4z5b95w8ck2jlrp7abqahaxdcbj3d2kcpb4")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-gi-graphene ghc-haskell-gi-overloading ghc-gi-cairo ghc-gi-pango ghc-gi-gio ghc-gi-gdkpixbuf ghc-gi-gobject ghc-gi-gsk ghc-gi-glib ghc-transformers ghc-bytestring-builder gobject-introspection gtk)) (native-inputs (list pkg-config gtk)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Gdk bindings") (description "Bindings for Gsk, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-graphene (package (name "ghc-gi-graphene") (version "1.0.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-graphene/gi-graphene-" version ".tar.gz")) (sha256 (base32 "189fsk72m3v7qbwyn75vradvi3y9vrbjlg95dbr65k2mm1if2n9k")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-cairo ghc-gi-pango ghc-gi-gio ghc-gi-gdkpixbuf ghc-gi-gobject ghc-gi-glib ghc-transformers ghc-bytestring-builder gobject-introspection gtk)) (native-inputs (list pkg-config gtk)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Gdk bindings") (description "Bindings for Graphene, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-gdk (package (name "ghc-gi-gdk") (version "4.0.9") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-gdk/gi-gdk-" version ".tar.gz")) (sha256 (base32 "0c43wxbq4g41j107gnh8gyxjsws223p7kkm46hihjvs8pcxrab94")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading ghc-gi-cairo ghc-gi-pango ghc-gi-gio ghc-gi-gdkpixbuf ghc-gi-gobject ghc-gi-glib ghc-transformers ghc-bytestring-builder gobject-introspection ghc-gi-graphene gtk)) (native-inputs (list pkg-config gtk)) ;; was gtk+, but in guix gtk is the name for gtk-4 (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'set-configure-environment-variables (lambda _ (setenv "GI_TYPELIB_PATH" (getenv "GI_TYPELIB_PATH")) #t))))) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Gdk bindings") (description "Bindings for Gdk, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-gi-cairo-render (package (name "ghc-gi-cairo-render") (version "0.1.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-cairo-render/gi-cairo-render-" version ".tar.gz")) (sha256 (base32 "07h3k8bzb6qhk7x2v68dg5gsxxpjpr7k3vvh2fyqb9zj9rq8lyfc")))) (build-system haskell-build-system) (inputs (list ghc-utf8-string ghc-haskell-gi-base cairo)) (native-inputs (list ghc-c2hs pkg-config)) (home-page "https://github.com/cohomology/gi-cairo-render") (synopsis "GI friendly Binding to the Cairo library.") (description "Cairo is a library to render high quality vector graphics. There exist various backends that allows rendering to Gtk windows, PDF, PS, PNG and SVG documents, amongst others.") (license license:bsd-3))) (define-public ghc-gi-cairo-connector (package (name "ghc-gi-cairo-connector") (version "0.1.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-cairo-connector/gi-cairo-connector-" version ".tar.gz")) (sha256 (base32 "0jkca1x0dlyfwyywn6gmsnxhyad3j7vfwa0c4hpvx8k8m350dn3c")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-gi-cairo ghc-gi-cairo-render)) (home-page "https://github.com/cohomology/gi-cairo-render") (synopsis "GI friendly Binding to the Cairo library.") (description "This library contains glue code used to interconnect Haskell GI and Cairo") (license license:lgpl2.1))) (define-public ghc-haskell-gi-overloading (package (name "ghc-haskell-gi-overloading") (version "1.0") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/haskell-gi-overloading/haskell-gi-overloading-" version ".tar.gz")) (sha256 (base32 "0ak8f79ia9zlk94zr02sq8bqi5n5pd8ria8w1dj3adcdvpw9gmry")))) (build-system haskell-build-system) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Overloading support for haskell-gi") (description "Control overloading support in haskell-gi generated bindings") (license license:bsd-3))) (define-public ghc-haskell-gi (package (name "ghc-haskell-gi") (version "0.26.12") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/haskell-gi/haskell-gi-" version ".tar.gz")) (sha256 (base32 "0qq2c5s7w0vaa01rpwv02qjrr1sd618vy2k25l55nb0hxzf9z3zi")))) (build-system haskell-build-system) (inputs (list ghc-haskell-gi-base ghc-attoparsec ghc-pretty-show ghc-ansi-terminal ghc-safe ghc-xdg-basedir ghc-xml-conduit ghc-regex-tdfa glib gobject-introspection)) (native-inputs (list ghc-doctest ghc-cabal-doctest pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Generate Haskell bindings for GObject Introspection capable libraries") (description "Generate Haskell bindings for GObject Introspection capable libraries. This includes most notably Gtk+, but many other libraries in the GObject ecosystem provide introspection data too.") (license license:lgpl2.1))) (define-public ghc-haskell-gi-base (package (name "ghc-haskell-gi-base") (version "0.26.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/haskell-gi-base/haskell-gi-base-" version ".tar.gz")) (sha256 (base32 "19sp8yi9inxq7vqw6zpf2rlk56algxajkf8gyl0iqbx95kb4x1bb")))) (build-system haskell-build-system) (native-inputs (list pkg-config)) (inputs (list glib ghc-gtk2hs-buildtools)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Foundation for libraries generated by haskell-gi") (description "Foundation for libraries generated by haskell-gi") (license license:lgpl2.1))) (define-public ghc-gi-cairo (package (name "ghc-gi-cairo") (version "1.0.30") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/gi-cairo/gi-cairo-" version ".tar.gz")) (sha256 (base32 "0s0ych0fxnfaqg2q2ndfp2zj01sya0j888snd2rdbaiikxy0kvsq")))) (build-system haskell-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'set-configure-environment-variables (lambda _ (setenv "LD_LIBRARY_PATH" (getenv "LIBRARY_PATH")) #t))))) (inputs (list ghc-haskell-gi-base ghc-haskell-gi ghc-haskell-gi-overloading gobject-introspection cairo)) (native-inputs (list pkg-config)) (home-page "https://github.com/haskell-gi/haskell-gi") (synopsis "Cairo bindings") (description "Bindings for Cairo, autogenerated by haskell-gi.") (license license:lgpl2.1))) (define-public ghc-io-storage (package (name "ghc-io-storage") (version "0.3") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/io-storage/io-storage-" version ".tar.gz")) (sha256 (base32 "1ga9bd7iri6vlsxnjx765yy3bxc4lbz644wyw88yzvpjgz6ga3cs")))) (build-system haskell-build-system) (home-page "http://github.com/willdonnelly/io-storage") (synopsis "A key-value store in the IO monad.") (description "This library allows an application to extend the 'global state' hidden inside the IO monad with semi-arbitrary data. Data is required to be 'Typeable'. The library provides an essentially unbounded number of key-value stores indexed by strings, with each key within the stores also being a string.") (license license:bsd-3))) (define-public ghc-dyre (package (name "ghc-dyre") (version "0.9.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/dyre/dyre-" version ".tar.gz")) (sha256 (base32 "1lrpjvah57p1ld3spcrgqds3claqkd5a9ay8inihl9wws0ifhfmh")))) (build-system haskell-build-system) (arguments '(#:tests? #f)) (inputs (list ghc-executable-path ghc-io-storage ghc-xdg-basedir)) (home-page "http://github.com/willdonnelly/dyre") (synopsis "Dynamic reconfiguration in Haskell") (description "Dyre implements dynamic reconfiguration facilities after the style of Xmonad. Dyre aims to be as simple as possible without sacrificing features, and places an emphasis on simplicity of integration with an application. A full introduction with a complete example project can be found in the documentation for 'Config.Dyre'") (license license:bsd-3))) (define-public ghc-dbus-hslogger (package (name "ghc-dbus-hslogger") (version "0.1.0.1") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/dbus-hslogger/dbus-hslogger-" version ".tar.gz")) (sha256 (base32 "0i2y69kagp53cmlb7p3y6ysr9k5wvfd0vcnpwsasyn1jpk6g80zi")))) (build-system haskell-build-system) (inputs (list ghc-dbus ghc-hslogger ghc-optparse-applicative)) (home-page "https://github.com/IvanMalison/dbus-hslogger#readme") (synopsis "Expose a dbus server to control hslogger") (description "Please see the README on Github at ") (license license:bsd-3))) (define-public ghc-broadcast-chan (package (name "ghc-broadcast-chan") (version "0.2.1.2") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/broadcast-chan/broadcast-chan-" version ".tar.gz")) (sha256 (base32 "1zsrafz3q9l8np8wafmrbi8ilwwsgnzkc8jfjkjfgs4kq65yglqw")))) (build-system haskell-build-system) (arguments `(#:cabal-revision ("1" "1989dc49db8cf3ca24x4hs3nirm74xl9p0dqf8kpj1dr64y6dvzj"))) (inputs (list ghc-unliftio-core)) (home-page "https://github.com/merijn/broadcast-chan") (synopsis "Closable, fair, single-wakeup channel type that avoids 0 reader space leaks.") (description "A closable, fair, single-wakeup channel that avoids the 0 reader space leak that @\"Control.Concurrent.Chan\"@ from base suffers from. The @Chan@ type from @\"Control.Concurrent.Chan\"@ consists of both a read and write end combined into a single value. This means there is always at least 1 read end for a @Chan@, which keeps any values written to it alive. This is a problem for applications/libraries that want to have a channel that can have zero listeners. @\"BroadcastChan\"@ splits channels into separate read and write ends. Any message written to a a channel with no existing read end is immediately dropped so it can be garbage collected.") (license license:bsd-3))) (define-public ghc-hstringtemplate (package (name "ghc-hstringtemplate") (version "0.8.8") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/HStringTemplate/HStringTemplate-" version ".tar.gz")) (sha256 (base32 "1n8ci0kzjcgnqh4dfpqwlh7mnlzyiqiqc6hc0zr65p0balbg8zbi")))) (build-system haskell-build-system) (arguments `(#:cabal-revision ("4" "0sj82pzq2hcx3yjsljwgbr1kcdgwpgfmq0n0dhz3am8ckwir0slz"))) (inputs (list ghc-blaze-builder ghc-old-locale ghc-semigroups ghc-syb ghc-void)) (native-inputs (list ghc-quickcheck ghc-random ghc-hunit)) (home-page "http://hackage.haskell.org/package/HStringTemplate") (synopsis "StringTemplate implementation in Haskell.") (description "A port of the Java library by Terrence Parr.") (license license:bsd-3))) (define-public ghc-configfile (package (name "ghc-configfile") (version "1.1.4") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/ConfigFile/ConfigFile-" version ".tar.gz")) (sha256 (base32 "057mw146bip9wzs7j4b5xr1x24d8w0kr4i3inri5m57jkwspn25f")))) (build-system haskell-build-system) (inputs (list ghc-missingh)) (home-page "http://software.complete.org/configfile") (synopsis "Configuration file reading & writing") (description "Parser and writer for handling sectioned config files in Haskell. . The ConfigFile module works with configuration files in a standard format that is easy for the user to edit, easy for the programmer to work with, yet remains powerful and flexible. It is inspired by, and compatible with, Python's ConfigParser module. It uses files that resemble Windows .INI-style files, but with numerous improvements. . ConfigFile provides simple calls to both read and write config files. It's possible to make a config file parsable by this module, the Unix shell, and make.") (license license:bsd-3))) ghc-gi-gdk