From 2048f54f1bf375a1a3d15796ce2ac39613368723 Mon Sep 17 00:00:00 2001 From: Tony Zorman Date: Wed, 19 Jul 2023 08:00:36 +0200 Subject: [PATCH] Fix build with GHC 9.6 Version 2.8.0 of `unix' includes a breaking change for openFd, changing its arity. For now, just use some CPP in order to test for the appropriate library version. Related: https://github.com/haskell/unix/releases/tag/v2.8.0.0 --- src/KMonad/Keyboard/IO/Linux/DeviceSource.hs | 5 +++++ src/KMonad/Keyboard/IO/Linux/UinputSink.hs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/KMonad/Keyboard/IO/Linux/DeviceSource.hs b/src/KMonad/Keyboard/IO/Linux/DeviceSource.hs index cec128d4..4c25f3b0 100644 --- a/src/KMonad/Keyboard/IO/Linux/DeviceSource.hs +++ b/src/KMonad/Keyboard/IO/Linux/DeviceSource.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveAnyClass #-} {-| Module : KMonad.Keyboard.IO.Linux.DeviceSource @@ -131,7 +132,11 @@ lsOpen :: (HasLogFunc e) -> FilePath -- ^ The path to the device file -> RIO e DeviceFile lsOpen pr pt = do +#if MIN_VERSION_unix(2,8,0) + h <- liftIO . openFd pt ReadOnly $ +#else h <- liftIO . openFd pt ReadOnly Nothing $ +#endif OpenFileFlags False False False False False hd <- liftIO $ fdToHandle h logInfo "Initiating ioctl grab" diff --git a/src/KMonad/Keyboard/IO/Linux/UinputSink.hs b/src/KMonad/Keyboard/IO/Linux/UinputSink.hs index b6f8eec6..082c9092 100644 --- a/src/KMonad/Keyboard/IO/Linux/UinputSink.hs +++ b/src/KMonad/Keyboard/IO/Linux/UinputSink.hs @@ -27,7 +27,7 @@ import Data.Time.Clock.System (getSystemTime) import Foreign.C.String import Foreign.C.Types -import System.Posix +import System.Posix hiding (sync) import UnliftIO.Async (async) import UnliftIO.Process (spawnCommand)