packages feed

dbus-1.3.3: dbus.cabal

name: dbus
version: 1.3.3
license: Apache-2.0
license-file: license.txt
author: John Millikin <john@john-millikin.com>
maintainer: Andrey Sverdlichenko <blaze@rusty.zone>
build-type: Simple
cabal-version: >= 1.10
category: Network, Desktop
stability: experimental
homepage: https://github.com/rblaze/haskell-dbus#readme

synopsis: A client library for the D-Bus IPC system.
description:
  D-Bus is a simple, message-based protocol for inter-process
  communication, which allows applications to interact with other parts of
  the machine and the user's session using remote procedure calls.
  .
  D-Bus is a essential part of the modern Linux desktop, where it replaces
  earlier protocols such as CORBA and DCOP.
  .
  This library is an implementation of the D-Bus protocol in Haskell. It
  can be used to add D-Bus support to Haskell applications, without the
  awkward interfaces common to foreign bindings.
  .
  Example: connect to the session bus, and get a list of active names.
  .
  @
  &#x7b;-\# LANGUAGE OverloadedStrings \#-&#x7d;
  .
  import Data.List (sort)
  import DBus
  import DBus.Client
  .
  main = do
  &#x20;   client <- connectSession
  &#x20;
  &#x20;   -- Request a list of connected clients from the bus
  &#x20;   reply <- call_ client (methodCall \"\/org\/freedesktop\/DBus\" \"org.freedesktop.DBus\" \"ListNames\")
  &#x20;       &#x7b; methodCallDestination = Just \"org.freedesktop.DBus\"
  &#x20;       &#x7d;
  &#x20;
  &#x20;   -- org.freedesktop.DBus.ListNames() returns a single value, which is
  &#x20;   -- a list of names (here represented as [String])
  &#x20;   let Just names = fromVariant (methodReturnBody reply !! 0)
  &#x20;
  &#x20;   -- Print each name on a line, sorted so reserved names are below
  &#x20;   -- temporary names.
  &#x20;   mapM_ putStrLn (sort names)
  @
  .
  >$ ghc --make list-names.hs
  >$ ./list-names
  >:1.0
  >:1.1
  >:1.10
  >:1.106
  >:1.109
  >:1.110
  >ca.desrt.dconf
  >org.freedesktop.DBus
  >org.freedesktop.Notifications
  >org.freedesktop.secrets
  >org.gnome.ScreenSaver


extra-source-files:
  examples/dbus-monitor.hs
  examples/export.hs
  examples/introspect.hs
  examples/list-names.hs
  idlxml/dbus.xml

source-repository head
  type: git
  location: https://github.com/rblaze/haskell-dbus

library
  default-language: Haskell2010
  ghc-options: -W -Wall
  hs-source-dirs: lib

  build-depends:
      base >=4.16 && <5
    , bytestring < 0.13
    , cereal < 0.6
    , conduit >= 1.3.0 && < 1.4
    , containers < 0.7
    , deepseq < 1.6
    , exceptions < 0.11
    , filepath < 1.5
    , lens < 5.3
    , network >= 3.1.2.1 && < 3.2
    , parsec < 3.2
    , random < 1.3
    , split < 0.3
    , template-haskell >= 2.18 && < 2.22
    , text < 2.2
    , th-lift < 0.9
    , transformers < 0.7
    , unix < 2.9
    , vector < 0.14
    , xml-conduit >= 1.9.0.0 && < 1.10.0.0
    , xml-types < 0.4

  exposed-modules:
    DBus
    DBus.Client
    DBus.Generation
    DBus.Internal.Address
    DBus.Internal.Message
    DBus.Internal.Types
    DBus.Internal.Wire
    DBus.Introspection
    DBus.Introspection.Parse
    DBus.Introspection.Render
    DBus.Introspection.Types
    DBus.Socket
    DBus.TH
    DBus.Transport

test-suite dbus_tests
  type: exitcode-stdio-1.0
  main-is: DBusTests.hs
  hs-source-dirs: tests
  default-language: Haskell2010
  ghc-options: -W -Wall -fno-warn-orphans

  build-depends:
      dbus
    , base >=4 && <5
    , bytestring < 0.13
    , cereal < 0.6
    , containers < 0.7
    , directory < 1.4
    , extra < 1.8
    , filepath < 1.5
    , network >= 3.1.2.1 && < 3.2
    , parsec < 3.2
    , process < 1.7
    , QuickCheck < 2.16
    , random < 1.3
    , resourcet < 1.4
    , tasty < 1.6
    , tasty-hunit < 0.11
    , tasty-quickcheck < 0.11
    , temporary >= 1.3 && < 1.4
    , text < 2.2
    , transformers < 0.7
    , unix < 2.9
    , vector < 0.14

  other-modules:
    DBusTests.Address
    DBusTests.BusName
    DBusTests.Client
    DBusTests.ErrorName
    DBusTests.Generation
    DBusTests.Integration
    DBusTests.InterfaceName
    DBusTests.Introspection
    DBusTests.MemberName
    DBusTests.Message
    DBusTests.ObjectPath
    DBusTests.Serialization
    DBusTests.Signature
    DBusTests.Socket
    DBusTests.TH
    DBusTests.Transport
    DBusTests.Util
    DBusTests.Variant
    DBusTests.Wire

benchmark dbus_benchmarks
  type: exitcode-stdio-1.0
  main-is: DBusBenchmarks.hs
  hs-source-dirs: benchmarks
  default-language: Haskell2010
  ghc-options: -Wall -fno-warn-orphans

  build-depends:
      dbus
    , base >=4 && <5
    , criterion < 1.7