aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch')
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch383
1 files changed, 383 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch b/nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch
new file mode 100644
index 00000000000..7ed390d3f23
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/patches/fix-dbus-for-ghc-8.10.x.patch
@@ -0,0 +1,383 @@
+Only in dbus-1.2.13-new: .codeclimate.yml
+diff -ur dbus-1.2.13-old/dbus.cabal dbus-1.2.13-new/dbus.cabal
+--- dbus-1.2.13-old/dbus.cabal 2020-04-25 19:29:27.372272952 +0200
++++ dbus-1.2.13-new/dbus.cabal 2020-04-25 19:26:36.140991920 +0200
+@@ -1,172 +1,180 @@
+-cabal-version: >=1.8
+ name: dbus
+ version: 1.2.13
+ license: Apache-2.0
+ license-file: license.txt
+-maintainer: Andrey Sverdlichenko <blaze@ruddy.ru>
+ author: John Millikin <john@john-millikin.com>
++maintainer: Andrey Sverdlichenko <blaze@ruddy.ru>
++build-type: Simple
++cabal-version: >= 1.8
++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
+-category: Network, Desktop
+-build-type: Simple
++ 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
++ 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
++ type: git
++ location: https://github.com/rblaze/haskell-dbus
+
+ library
+- 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
+- hs-source-dirs: lib
+- ghc-options: -W -Wall
+- build-depends:
+- base ==4.*,
+- bytestring <0.11,
+- cereal <0.6,
+- conduit >=1.3.0 && <1.4,
+- containers <0.7,
+- deepseq <1.5,
+- exceptions <0.11,
+- filepath <1.5,
+- lens <4.20,
+- network >=3.0.1.0 && <3.2,
+- parsec <3.2,
+- random <1.2,
+- split <0.3,
+- template-haskell <2.16.0.0,
+- text <1.3,
+- th-lift <0.9,
+- transformers <0.6,
+- unix <2.8,
+- vector <0.13,
+- xml-conduit >=1.9.0.0 && <1.10.0.0,
+- xml-types <0.4
++ ghc-options: -W -Wall
++ hs-source-dirs: lib
++
++ build-depends:
++ base >=4 && <5
++ , bytestring
++ , cereal
++ , conduit >= 1.3.0
++ , containers
++ , deepseq
++ , exceptions
++ , filepath
++ , lens < 4.20
++ , network >= 3.0.1.0 && < 3.2
++ , parsec
++ , random
++ , split
++ , template-haskell < 2.17.0.0
++ , text
++ , th-lift < 0.9
++ , transformers
++ , unix
++ , vector
++ , xml-conduit >= 1.9.0.0 && < 1.10.0.0
++ , xml-types
++
++ 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
+- 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
+- ghc-options: -W -Wall -fno-warn-orphans
+- build-depends:
+- dbus -any,
+- base ==4.*,
+- bytestring <0.11,
+- cereal <0.6,
+- containers <0.7,
+- directory <1.4,
+- extra <1.8,
+- filepath <1.5,
+- network >=3.0.1.0 && <3.2,
+- parsec <3.2,
+- process <1.7,
+- QuickCheck <2.15,
+- random <1.2,
+- resourcet <1.3,
+- tasty <1.3,
+- tasty-hunit <0.11,
+- tasty-quickcheck <0.11,
+- text <1.3,
+- transformers <0.6,
+- unix <2.8,
+- vector <0.13
++ type: exitcode-stdio-1.0
++ main-is: DBusTests.hs
++ hs-source-dirs: tests
++ ghc-options: -W -Wall -fno-warn-orphans
++
++ build-depends:
++ dbus
++ , base >=4 && <5
++ , bytestring
++ , cereal
++ , containers
++ , directory
++ , extra < 1.8
++ , filepath
++ , network >= 3.0.1.0 && < 3.2
++ , parsec
++ , process
++ , QuickCheck < 2.15
++ , random
++ , resourcet
++ , tasty
++ , tasty-hunit
++ , tasty-quickcheck
++ , text
++ , transformers
++ , unix
++ , vector
++
++ 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
+- ghc-options: -Wall -fno-warn-orphans
+- build-depends:
+- dbus -any,
+- base ==4.*,
+- criterion <1.6
++ type: exitcode-stdio-1.0
++ main-is: DBusBenchmarks.hs
++ hs-source-dirs: benchmarks
++ ghc-options: -Wall -fno-warn-orphans
++
++ build-depends:
++ dbus
++ , base >=4 && <5
++ , criterion
+Only in dbus-1.2.13-new: .git
+Only in dbus-1.2.13-new: .gitignore
+diff -ur dbus-1.2.13-old/lib/DBus/Generation.hs dbus-1.2.13-new/lib/DBus/Generation.hs
+--- dbus-1.2.13-old/lib/DBus/Generation.hs 2019-02-14 16:37:47.000000000 +0100
++++ dbus-1.2.13-new/lib/DBus/Generation.hs 2020-04-25 19:26:36.144991997 +0200
+@@ -1,3 +1,4 @@
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE OverloadedStrings #-}
+ {-# LANGUAGE TemplateHaskell #-}
+ module DBus.Generation where
+@@ -26,6 +27,13 @@
+ import Prelude hiding (mapM)
+ import System.Posix.Types (Fd(..))
+
++-- | Compatibility helper to create (total) tuple expressions
++mkTupE :: [Exp] -> Exp
++mkTupE = TupE
++#if MIN_VERSION_template_haskell(2,16,0)
++ . map Just
++#endif
++
+ type ClientBusPathR a = ReaderT (Client, T.BusName, T.ObjectPath) IO a
+
+ dbusInvoke :: (Client -> T.BusName -> T.ObjectPath -> a) -> ClientBusPathR a
+@@ -232,8 +240,8 @@
+ finalOutputNames <- buildOutputNames
+ let variantListExp = map makeToVariantApp methodArgNames
+ mapOrHead' = mapOrHead outputLength
+- fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames TupE
+- finalResultTuple = mapOrHead' VarE finalOutputNames TupE
++ fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames mkTupE
++ finalResultTuple = mapOrHead' VarE finalOutputNames mkTupE
+ maybeExtractionPattern = mapOrHead' makeJustPattern finalOutputNames TupP
+ getMethodCallDefDec = [d|
+ $( varP methodCallDefN ) =
+@@ -432,7 +440,7 @@
+ }
+ |]
+ let mapOrHead' = mapOrHead argCount
+- fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames TupE
++ fromVariantExp = mapOrHead' makeFromVariantApp fromVariantOutputNames mkTupE
+ maybeExtractionPattern = mapOrHead' makeJustPattern toHandlerOutputNames TupP
+ applyToName toApply n = AppE toApply $ VarE n
+ finalApplication = foldl applyToName (VarE handlerArgN)