Please describe the problem.

Build failure with hinotify,0.3.10 / fsnotify,0.2.1.2

What version of git-annex are you using? On what operating system?

git-annex 6.20180427 on Arch x86_64.

Please provide any additional information below.

[124 of 594] Compiling Utility.DirWatcher.INotify ( Utility/DirWatcher/INotify.hs, dist/build/git-annex/git-annex-tmp/Utility/DirWatcher/INotify.dyn_o )

Utility/DirWatcher/INotify.hs:58:54: error:
    • Couldn't match type ‘[Char]’
                     with ‘Data.ByteString.Internal.ByteString’
      Expected type: System.Posix.ByteString.FilePath.RawFilePath
        Actual type: FilePath
    • In the third argument of ‘addWatch’, namely ‘dir’
      In the first argument of ‘void’, namely
        ‘(addWatch i watchevents dir handler)’
      In the first argument of ‘catchIO’, namely
        ‘void (addWatch i watchevents dir handler)’
   |
58 |                         void (addWatch i watchevents dir handler)
   |                                                      ^^^

Utility/DirWatcher/INotify.hs:97:41: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the first argument of ‘indir’, namely ‘f’
      In the second argument of ‘($), namely ‘indir f’
      In the expression: recurse $ indir f
   |
97 |                 | isd = recurse $ indir f
   |                                         ^

Utility/DirWatcher/INotify.hs:99:41: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the first argument of ‘getstatus’, namely ‘f’
      In a stmt of a 'do' block: ms <- getstatus f
      In the expression:
        do ms <- getstatus f
           case ms of
             Just s
               | isSymbolicLink s
               -> when (hashook addSymlinkHook) $ runhook addSymlinkHook f ms
               | isRegularFile s -> when (hashook addHook) $ runhook addHook f ms
             _ -> noop
   |
99 |                         ms <- getstatus f
   |                                         ^

Utility/DirWatcher/INotify.hs:104:80: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the second argument of ‘($), namely
        ‘runhook addSymlinkHook f ms’
      In the expression:
        when (hashook addSymlinkHook) $ runhook addSymlinkHook f ms
    |
104 |                                                         runhook addSymlinkHook f ms
    |                                                                                ^

Utility/DirWatcher/INotify.hs:107:73: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the second argument of ‘($)’, namely ‘runhook addHook f ms’
      In the expression: when (hashook addHook) $ runhook addHook f ms
    |
107 |                                                         runhook addHook f ms
    |                                                                         ^

Utility/DirWatcher/INotify.hs:112:67: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the third argument of ‘checkfiletype’, namely ‘f’
      In the expression: checkfiletype isRegularFile addHook f
      In an equation for ‘go’:
          go (Closed {isDirectory = False, maybeFilePath = Just f})
            = checkfiletype isRegularFile addHook f
    |
112 |                         checkfiletype Files.isRegularFile addHook f
    |                                                                   ^

Utility/DirWatcher/INotify.hs:115:46: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the first argument of ‘scan’, namely ‘f’
      In the expression: scan f
      In an equation for ‘go’: go (MovedIn {filePath = f}) = scan f
    |
115 |         go (MovedIn { filePath = f }) = scan f
    |                                              ^

Utility/DirWatcher/INotify.hs:117:44: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the expression: runhook delDirHook f Nothing
      In an equation for ‘go’:
          go (MovedOut {isDirectory = isd, filePath = f})
            | isd = runhook delDirHook f Nothing
            | otherwise = runhook delHook f Nothing
    |
117 |                 | isd = runhook delDirHook f Nothing
    |                                            ^

Utility/DirWatcher/INotify.hs:118:47: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the expression: runhook delHook f Nothing
      In an equation for ‘go’:
          go (MovedOut {isDirectory = isd, filePath = f})
            | isd = runhook delDirHook f Nothing
            | otherwise = runhook delHook f Nothing
    |
118 |                 | otherwise = runhook delHook f Nothing
    |                                               ^

Utility/DirWatcher/INotify.hs:124:54: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the second argument of ‘($), namely
        ‘runhook delDirHook f Nothing’
      In the expression: guarded $ runhook delDirHook f Nothing
    |
124 |                 | isd = guarded $ runhook delDirHook f Nothing
    |                                                      ^

Utility/DirWatcher/INotify.hs:125:57: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the second argument of ‘($)’, namely ‘runhook delHook f Nothing’
      In the expression: guarded $ runhook delHook f Nothing
    |
125 |                 | otherwise = guarded $ runhook delHook f Nothing
    |                                                         ^

Utility/DirWatcher/INotify.hs:127:58: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘filetype’, namely ‘f’
      In the first argument of ‘unlessM’, namely
        ‘(filetype (const True) f)’
      In the expression: unlessM (filetype (const True) f)
    |
127 |                 guarded = unlessM (filetype (const True) f)
    |                                                          ^

Utility/DirWatcher/INotify.hs:130:50: error:
    • Couldn't match type ‘Data.ByteString.Internal.ByteString’
                     with ‘[Char]’
      Expected type: FilePath
        Actual type: System.Posix.ByteString.FilePath.RawFilePath
    • In the second argument of ‘runhook’, namely ‘f’
      In the expression: runhook modifyHook f Nothing
      In an equation for ‘go’:
          go (Modified {isDirectory = isd, maybeFilePath = Just f})
            | isd = noop
            | otherwise = runhook modifyHook f Nothing
    |
130 |                 | otherwise = runhook modifyHook f Nothing
    |                                                  ^

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Yes!