Hello community,

here is the log from the commit of package ghc-hinotify for openSUSE:Factory 
checked in at 2018-05-30 12:08:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hinotify (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-hinotify.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-hinotify"

Wed May 30 12:08:36 2018 rev:6 rq:607810 version:0.3.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-hinotify/ghc-hinotify.changes        
2017-09-15 21:48:25.402024790 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-hinotify.new/ghc-hinotify.changes   
2018-05-30 12:25:55.141113138 +0200
@@ -1,0 +2,8 @@
+Mon May 14 17:02:11 UTC 2018 - psim...@suse.com
+
+- Update hinotify to version 0.3.10 revision 1.
+  - Allow async-2.2.
+  - Use `RawFilePath` (`ByteString`) for filenames, from `unix` package.
+    Changes the `Event` type and `addWatch` function.
+
+-------------------------------------------------------------------

Old:
----
  hinotify-0.3.9.tar.gz

New:
----
  hinotify-0.3.10.tar.gz
  hinotify.cabal

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-hinotify.spec ++++++
--- /var/tmp/diff_new_pack.3UPZis/_old  2018-05-30 12:25:56.353072681 +0200
+++ /var/tmp/diff_new_pack.3UPZis/_new  2018-05-30 12:25:56.357072548 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-hinotify
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,19 +19,23 @@
 %global pkg_name hinotify
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.3.9
+Version:        0.3.10
 Release:        0
 Summary:        Haskell binding to inotify
 License:        BSD-3-Clause
 Group:          Development/Libraries/Haskell
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
+Source1:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-async-devel
+BuildRequires:  ghc-bytestring-devel
 BuildRequires:  ghc-containers-devel
-BuildRequires:  ghc-directory-devel
 BuildRequires:  ghc-rpm-macros
 BuildRequires:  ghc-unix-devel
+%if %{with tests}
+BuildRequires:  ghc-directory-devel
+%endif
 
 %description
 This library provides a wrapper to the Linux Kernel's inotify feature, allowing
@@ -50,6 +54,7 @@
 
 %prep
 %setup -q -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build
@@ -67,7 +72,7 @@
 %ghc_pkg_recache
 
 %files -f %{name}.files
-%doc LICENSE
+%license LICENSE
 
 %files devel -f %{name}-devel.files
 %doc CHANGELOG.md README.md

++++++ hinotify-0.3.9.tar.gz -> hinotify-0.3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/CHANGELOG.md 
new/hinotify-0.3.10/CHANGELOG.md
--- old/hinotify-0.3.9/CHANGELOG.md     2016-12-03 20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/CHANGELOG.md    2018-04-09 00:38:00.000000000 +0200
@@ -1,6 +1,15 @@
 hinotify
 ======
 
+hinotify-0.3.10
+---------------
+
+- Allow async-2.2.
+- Use `RawFilePath` (`ByteString`) for filenames, from `unix` package.
+
+  Changes the `Event` type and `addWatch` function.
+
+
 hinotify-0.3.9
 --------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/hinotify.cabal 
new/hinotify-0.3.10/hinotify.cabal
--- old/hinotify-0.3.9/hinotify.cabal   2016-12-03 20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/hinotify.cabal  2018-04-09 00:38:00.000000000 +0200
@@ -1,5 +1,5 @@
 name:               hinotify
-version:            0.3.9
+version:            0.3.10
 build-type:         Simple
 synopsis:           Haskell binding to inotify
 description:
@@ -21,8 +21,8 @@
 
 library
     default-language: Haskell2010
-    build-depends:  base >= 4.5.0.0 && < 5, containers, directory, unix,
-                    async >= 1.0 && < 2.2
+    build-depends:  base >= 4.5.0.0 && < 5, bytestring, containers, unix,
+                    async >= 1.0 && < 2.3
 
     exposed-modules:
         System.INotify
@@ -36,7 +36,7 @@
 test-suite test001
     type: exitcode-stdio-1.0
     default-language: Haskell2010
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     hs-source-dirs: src tests
     main-is: test001-list-dir-contents.hs
     other-modules: Utils
@@ -45,7 +45,7 @@
 test-suite test002
     type: exitcode-stdio-1.0
     default-language: Haskell2010
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     hs-source-dirs: src tests
     main-is: test002-writefile.hs
     other-modules: Utils
@@ -54,7 +54,7 @@
 test-suite test003
     type: exitcode-stdio-1.0
     default-language: Haskell2010
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     hs-source-dirs: src tests
     main-is: test003-removefile.hs
     other-modules: Utils
@@ -63,7 +63,7 @@
 test-suite test004
     type: exitcode-stdio-1.0
     default-language: Haskell2010
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     hs-source-dirs: src tests
     main-is: test004-modify-file.hs
     other-modules: Utils
@@ -71,7 +71,7 @@
 
 test-suite test005
     type: exitcode-stdio-1.0
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     default-language: Haskell2010
     hs-source-dirs: src tests
     main-is: test005-move-file.hs
@@ -80,7 +80,7 @@
 
 test-suite test006
     type: exitcode-stdio-1.0
-    build-depends: base, directory, hinotify
+    build-depends: base, bytestring, directory, hinotify, unix
     default-language: Haskell2010
     hs-source-dirs: src tests
     main-is: test006-callbackHang.hs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/src/System/INotify.hsc 
new/hinotify-0.3.10/src/System/INotify.hsc
--- old/hinotify-0.3.9/src/System/INotify.hsc   2016-12-03 20:41:15.000000000 
+0100
+++ new/hinotify-0.3.10/src/System/INotify.hsc  2018-04-09 00:38:00.000000000 
+0200
@@ -15,7 +15,7 @@
 -- Use 'initINotify' to get a 'INotify', then use 'addWatch' to
 -- add a watch on a file or directory. Select which events you're interested
 -- in with 'EventVariety', which corresponds to the 'Event' events.
--- 
+--
 -- Use 'removeWatch' once you don't want to watch a file any more.
 --
 -----------------------------------------------------------------------------
@@ -43,18 +43,19 @@
 import Data.Maybe
 import Data.Map (Map)
 import qualified Data.Map as Map
-import Foreign.C hiding (withCString, peekCString)
+import Foreign.C
 import Foreign.Marshal hiding (void)
 import Foreign.Ptr
 import Foreign.Storable
 import System.IO
 import System.IO.Error
+
+import System.Posix.ByteString.FilePath
+import System.Posix.Files.ByteString
+
 import GHC.IO.FD as FD (mkFD)
 import GHC.IO.Handle.FD (mkHandleFromFD)
 import GHC.IO.Device (IODeviceType(Stream))
-import System.Posix.Files
-import GHC.IO.Encoding (getFileSystemEncoding)
-import GHC.Foreign (withCString, peekCString)
 
 import System.INotify.Masks
 
@@ -73,45 +74,45 @@
 
 newtype Cookie = Cookie CUInt deriving (Eq,Ord)
 
-data FDEvent = FDEvent WD Masks CUInt{-Cookie-} (Maybe String) deriving (Eq, 
Show)
+data FDEvent = FDEvent WD Masks CUInt{-Cookie-} (Maybe RawFilePath) deriving 
(Eq, Show)
 
 data Event =
     -- | A file was accessed. @Accessed isDirectory file@
       Accessed
         { isDirectory :: Bool
-        , maybeFilePath :: Maybe FilePath
+        , maybeFilePath :: Maybe RawFilePath
         }
     -- | A file was modified. @Modified isDirectory file@
     | Modified
         { isDirectory :: Bool
-        , maybeFilePath :: Maybe FilePath
+        , maybeFilePath :: Maybe RawFilePath
         }
     -- | A files attributes where changed. @Attributes isDirectory file@
     | Attributes
         { isDirectory :: Bool
-        , maybeFilePath :: Maybe FilePath
+        , maybeFilePath :: Maybe RawFilePath
         }
     -- | A file was closed. @Closed isDirectory file wasWriteable@
     | Closed
         { isDirectory :: Bool
-        , maybeFilePath :: Maybe FilePath
+        , maybeFilePath :: Maybe RawFilePath
         , wasWriteable :: Bool
         }
     -- | A file was opened. @Opened isDirectory maybeFilePath@
     | Opened
         { isDirectory :: Bool
-        , maybeFilePath :: Maybe FilePath
+        , maybeFilePath :: Maybe RawFilePath
         }
     -- | A file was moved away from the watched dir. @MovedFrom isDirectory 
from cookie@
     | MovedOut
         { isDirectory :: Bool
-        , filePath :: FilePath
+        , filePath :: RawFilePath
         , moveCookie :: Cookie
         }
     -- | A file was moved into the watched dir. @MovedTo isDirectory to cookie@
     | MovedIn
         { isDirectory :: Bool
-        , filePath :: FilePath
+        , filePath :: RawFilePath
         , moveCookie :: Cookie
         }
     -- | The watched file was moved. @MovedSelf isDirectory@
@@ -121,12 +122,12 @@
     -- | A file was created. @Created isDirectory file@
     | Created
         { isDirectory :: Bool
-        , filePath :: FilePath
+        , filePath :: RawFilePath
         }
     -- | A file was deleted. @Deleted isDirectory file@
     | Deleted
         { isDirectory :: Bool
-        , filePath :: FilePath
+        , filePath :: RawFilePath
         }
     -- | The file watched was deleted.
     | DeletedSelf
@@ -162,7 +163,7 @@
 
 instance Show INotify where
     show (INotify _ fd _ _ _) =
-        showString "<inotify fd=" . 
+        showString "<inotify fd=" .
         shows fd $ ">"
 
 instance Show WatchDescriptor where
@@ -187,7 +188,7 @@
     (tid1, tid2) <- inotify_start_thread h em
     return (INotify h fdint em tid1 tid2)
 
-addWatch :: INotify -> [EventVariety] -> FilePath -> (Event -> IO ()) -> IO 
WatchDescriptor
+addWatch :: INotify -> [EventVariety] -> RawFilePath -> (Event -> IO ()) -> IO 
WatchDescriptor
 addWatch inotify@(INotify _ fd em _ _) masks fp cb = do
     catch_IO (void $
               (if (NoSymlink `elem` masks) then getSymbolicLinkStatus else 
getFileStatus)
@@ -195,10 +196,9 @@
         ioError $ mkIOError doesNotExistErrorType
              "can't watch what isn't there!"
              Nothing
-             (Just fp)
+             (Just (show fp))
     let mask = joinMasks (map eventVarietyToMask masks)
-    enc <- getFileSystemEncoding
-    wd <- withCString enc fp $ \fp_c ->
+    wd <- withFilePath fp $ \fp_c ->
             throwErrnoIfMinus1 "addWatch" $
               c_inotify_add_watch (fromIntegral fd) fp_c mask
     let event = \e -> ignore_failure $ do
@@ -241,7 +241,11 @@
       where
       ignore :: SomeException -> IO ()
       ignore e
+##if MIN_VERSION_async(2,2,1)
+        | Just AsyncCancelled <- fromException e = throwIO e
+##else
         | Just ThreadKilled{} <- fromException e = throwIO e
+##endif
         | otherwise = return ()
 
 removeWatch :: WatchDescriptor -> IO ()
@@ -255,7 +259,7 @@
     modifyMVar_ em (return . Map.delete wd)
 
 read_events :: Handle -> IO [WDEvent]
-read_events h = 
+read_events h =
     let maxRead = 16385 in
     allocaBytes maxRead $ \buffer -> do
         _ <- hWaitForInput h (-1)  -- wait forever
@@ -272,13 +276,12 @@
         nameM  <- if len == 0
                     then return Nothing
                     else do
-                        enc <- getFileSystemEncoding
-                        fmap Just $ peekCString enc ((#ptr struct 
inotify_event, name) ptr)
-        let event_size = (#size struct inotify_event) + (fromIntegral len) 
+                        fmap Just $ peekFilePath ((#ptr struct inotify_event, 
name) ptr)
+        let event_size = (#size struct inotify_event) + (fromIntegral len)
             event = cEvent2Haskell (FDEvent wd mask cookie nameM)
         rest <- read_events' (ptr `plusPtr` event_size) (r - event_size)
         return (event:rest)
-    cEvent2Haskell :: FDEvent 
+    cEvent2Haskell :: FDEvent
                -> WDEvent
     cEvent2Haskell fdevent@(FDEvent wd mask cookie nameM)
         = (wd, event)
@@ -324,7 +327,7 @@
     runHandler (_,  e@QOverflow) = do -- send overflows to all handlers
         handlers <- readMVar em
         mapM_ ($ e) (Map.elems handlers)
-    runHandler (wd, event) = do 
+    runHandler (wd, event) = do
         handlers <- readMVar em
         let handlerM = Map.lookup wd handlers
         case handlerM of
@@ -333,7 +336,11 @@
 
     logFailure name io = io `E.catch` \e ->
        case e of
+##if MIN_VERSION_async(2,2,1)
+         _ | Just AsyncCancelled <- fromException e -> return ()
+##else
          _ | Just ThreadKilled{} <- fromException e -> return ()
+##endif
            | otherwise -> hPutStrLn stderr (name ++ " dying: " ++ show e)
 
 killINotify :: INotify -> IO ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/Utils.hs 
new/hinotify-0.3.10/tests/Utils.hs
--- old/hinotify-0.3.9/tests/Utils.hs   2016-12-03 20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/Utils.hs  2018-04-09 00:38:00.000000000 +0200
@@ -1,41 +1,50 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Utils where
 
 import Control.Concurrent.Chan
 import Control.Exception
 
-import System.Directory
+import qualified Data.ByteString as B
+import qualified Data.ByteString.Char8 as BC8
+import Data.String
+
+import System.Directory ( removeDirectoryRecursive )
 import System.Environment
 import System.Exit
 
 import System.INotify
 
-testName :: IO String
+import System.Posix.ByteString.FilePath
+import System.Posix.Directory.ByteString
+import System.Posix.Files.ByteString
+
+testName :: IO RawFilePath
 testName = do
     n <- getProgName
-    return (n ++ "-playground")
+    return (fromString n `B.append` "-playground")
 
-withTempDir :: (String -> IO a) -> IO a
+withTempDir :: (RawFilePath -> IO a) -> IO a
 withTempDir f = do
     path <- testName
     bracket
-        ( createDirectory path >> return path )
-        ( removeDirectoryRecursive )
-        ( f )
+        ( createDirectory path ownerModes >> return path )
+        ( removeDirectoryRecursive . fromString . BC8.unpack )
+        f
 
-withWatch :: INotify -> [EventVariety] -> FilePath -> (Event -> IO ()) -> IO a 
-> IO a
+withWatch :: INotify -> [EventVariety] -> RawFilePath -> (Event -> IO ()) -> 
IO a -> IO a
 withWatch inot events path action f =
     bracket
         ( addWatch inot events path action )
         removeWatch
         ( const f )
 
-inTestEnviron :: [EventVariety] -> (String -> IO a) -> ([Event] -> IO b) -> IO 
b
-inTestEnviron events action f = do
+inTestEnviron :: [EventVariety] -> (FilePath -> IO a) -> ([Event] -> IO b) -> 
IO b
+inTestEnviron events action f =
     withTempDir $ \testPath -> do
         inot <- initINotify
         chan <- newChan
         withWatch inot events testPath (writeChan chan) $ do
-            _ <- action testPath
+            _ <- action (fromString . BC8.unpack $ testPath)
             events' <- getChanContents chan
             f events'
 
@@ -56,5 +65,5 @@
 
 testFailure, testSuccess :: IO a
 testFailure = exitFailure 
-testSuccess = exitWith ExitSuccess
+testSuccess = exitSuccess
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/test002-writefile.hs 
new/hinotify-0.3.10/tests/test002-writefile.hs
--- old/hinotify-0.3.9/tests/test002-writefile.hs       2016-12-03 
20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/test002-writefile.hs      2018-04-09 
00:38:00.000000000 +0200
@@ -1,14 +1,17 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
 import Control.Monad
 
+import qualified Data.ByteString as B
+
 import System.INotify as INotify
 
 import Utils
 
-write :: String -> IO ()
-write path = do
-    writeFile (path ++ "/hello") ""
+write :: FilePath -> IO ()
+write path =
+    B.writeFile (path ++ "/hello") ""
     -- actually writing any contents gives me two Modified
     
 main :: IO ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/test003-removefile.hs 
new/hinotify-0.3.10/tests/test003-removefile.hs
--- old/hinotify-0.3.9/tests/test003-removefile.hs      2016-12-03 
20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/test003-removefile.hs     2018-04-09 
00:38:00.000000000 +0200
@@ -1,3 +1,4 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
 import Control.Monad
@@ -12,11 +13,11 @@
 file = "hello"
 
 write :: String -> IO ()
-write path = do
+write path =
     writeFile (path ++ '/':file) ""
 
 remove :: String -> IO ()
-remove path = do
+remove path =
     removeFile (path ++ '/':file)
 
 action :: String -> IO ()
@@ -34,9 +35,9 @@
 
 expected :: [Event]
 expected =
-    [ Created   False file
-    , Opened    False (Just file)
-    , Modified  False (Just file)
-    , Closed    False (Just file) True
-    , Deleted   False file
+    [ Created   False "hello"
+    , Opened    False (Just "hello")
+    , Modified  False (Just "hello")
+    , Closed    False (Just "hello") True
+    , Deleted   False "hello"
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/test004-modify-file.hs 
new/hinotify-0.3.10/tests/test004-modify-file.hs
--- old/hinotify-0.3.9/tests/test004-modify-file.hs     2016-12-03 
20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/test004-modify-file.hs    2018-04-09 
00:38:00.000000000 +0200
@@ -1,3 +1,4 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
 import Control.Exception
@@ -14,18 +15,18 @@
 file = "hello"
 
 write :: String -> IO ()
-write path = do
+write path =
     writeFile (path ++ '/':file) ""
 
 modify :: String -> IO ()
-modify path = do
+modify path =
     bracket
         (openFile (path ++ '/':file) AppendMode)
-        (hClose)
+        hClose
         (\h -> hPutStr h "yarr!")
 
 remove :: String -> IO ()
-remove path = do
+remove path =
     removeFile (path ++ '/':file)
 
 action :: String -> IO ()
@@ -44,12 +45,12 @@
 
 expected :: [Event]
 expected =
-    [ Created   False file
-    , Opened    False (Just file)
-    , Modified  False (Just file)
-    , Closed    False (Just file) True
-    , Opened    False (Just file)
-    , Modified  False (Just file)
-    , Closed    False (Just file) True
-    , Deleted   False file
+    [ Created   False "hello"
+    , Opened    False (Just "hello")
+    , Modified  False (Just "hello")
+    , Closed    False (Just "hello") True
+    , Opened    False (Just "hello")
+    , Modified  False (Just "hello")
+    , Closed    False (Just "hello") True
+    , Deleted   False "hello"
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/test005-move-file.hs 
new/hinotify-0.3.10/tests/test005-move-file.hs
--- old/hinotify-0.3.9/tests/test005-move-file.hs       2016-12-03 
20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/test005-move-file.hs      2018-04-09 
00:38:00.000000000 +0200
@@ -1,6 +1,8 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
 import Control.Monad
+
 import System.Directory
 
 import System.INotify as INotify
@@ -9,18 +11,18 @@
 
 file, file2 :: String
 file = "hello"
-file2 = file ++ "2"
+file2 = "hello2"
 
 write :: String -> IO ()
-write path = do
+write path =
     writeFile (path ++ '/':file) ""
 
 move :: String -> IO ()
-move path = do
+move path =
     renameFile (path ++ '/':file) (path ++ '/':file2)
 
 remove :: String -> IO ()
-remove path = do
+remove path =
     removeFile (path ++ '/':file2)
 
 action :: String -> IO ()
@@ -40,11 +42,11 @@
 
 expected :: Cookie -> [Event]
 expected cookie =
-    [ Created   False file
-    , Opened    False (Just file)
-    , Modified  False (Just file)
-    , Closed    False (Just file) True
-    , MovedOut  False file  cookie
-    , MovedIn   False file2 cookie
-    , Deleted   False file2
+    [ Created   False "hello"
+    , Opened    False (Just "hello")
+    , Modified  False (Just "hello")
+    , Closed    False (Just "hello") True
+    , MovedOut  False "hello"  cookie
+    , MovedIn   False "hello2" cookie
+    , Deleted   False "hello2"
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hinotify-0.3.9/tests/test006-callbackHang.hs 
new/hinotify-0.3.10/tests/test006-callbackHang.hs
--- old/hinotify-0.3.9/tests/test006-callbackHang.hs    2016-12-03 
20:41:15.000000000 +0100
+++ new/hinotify-0.3.10/tests/test006-callbackHang.hs   2018-04-09 
00:38:00.000000000 +0200
@@ -1,5 +1,7 @@
+{-# LANGUAGE OverloadedStrings #-}
 module Main where
 
+import qualified Data.ByteString.Char8 as BC8
 import Control.Concurrent
 import Control.Exception
 
@@ -30,5 +32,5 @@
             _ <- addWatch inot [AllEvents] testPath $ \_event -> do
                 putMVar mvar1 ()
                 takeMVar mvar2 -- hangs here
-            write testPath
+            write (BC8.unpack testPath)
             takeMVar mvar1

++++++ hinotify.cabal ++++++
name:               hinotify
version:            0.3.10
x-revision: 1
build-type:         Simple
synopsis:           Haskell binding to inotify
description:
    This library provides a wrapper to the Linux Kernel's inotify feature,
    allowing applications to subscribe to notifications when a file is
    accessed or modified.
category:           System
homepage:           https://github.com/kolmodin/hinotify.git
license:            BSD3
license-file:       LICENSE
author:             Lennart Kolmodin
maintainer:         Lennart Kolmodin <kolmo...@gmail.com>
extra-source-files: README.md, CHANGELOG.md
cabal-version:      >= 1.10

source-repository head
  type: git
  location: git://github.com/kolmodin/hinotify.git

library
    default-language: Haskell2010
    build-depends:  base >= 4.5.0.0 && < 5, bytestring, containers, unix,
                    async >= 2.0 && < 2.3

    exposed-modules:
        System.INotify
    other-modules:
        System.INotify.Masks

    ghc-options: -Wall
    includes: sys/inotify.h
    hs-source-dirs: src

test-suite test001
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-depends: base, bytestring, directory, hinotify, unix
    hs-source-dirs: src tests
    main-is: test001-list-dir-contents.hs
    other-modules: Utils
    ghc-options: -Wall

test-suite test002
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-depends: base, bytestring, directory, hinotify, unix
    hs-source-dirs: src tests
    main-is: test002-writefile.hs
    other-modules: Utils
    ghc-options: -Wall

test-suite test003
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-depends: base, bytestring, directory, hinotify, unix
    hs-source-dirs: src tests
    main-is: test003-removefile.hs
    other-modules: Utils
    ghc-options: -Wall

test-suite test004
    type: exitcode-stdio-1.0
    default-language: Haskell2010
    build-depends: base, bytestring, directory, hinotify, unix
    hs-source-dirs: src tests
    main-is: test004-modify-file.hs
    other-modules: Utils
    ghc-options: -Wall

test-suite test005
    type: exitcode-stdio-1.0
    build-depends: base, bytestring, directory, hinotify, unix
    default-language: Haskell2010
    hs-source-dirs: src tests
    main-is: test005-move-file.hs
    other-modules: Utils
    ghc-options: -Wall

test-suite test006
    type: exitcode-stdio-1.0
    build-depends: base, bytestring, directory, hinotify, unix
    default-language: Haskell2010
    hs-source-dirs: src tests
    main-is: test006-callbackHang.hs
    other-modules: Utils
    ghc-options: -Wall

Reply via email to