diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,17 @@
+Changelog for filelock package
+
+0.1.1.6
+-------
+
+_2023-04-06, Andreas Abel_
+
+* Fix problem with locking when used with `unix-2.8`
+  (issue [#12](https://github.com/takano-akio/filelock/issues/12)).
+* Package moved to [@haskell-pkg-janitors](https://github.com/haskell-pkg-janitors/filelock).
+
+Tested with GHC 8.2 - 9.6.
+
+0.1.1.5
+-------
+
+_2020-06-30, Takano Akio_
diff --git a/System/FileLock.hs b/System/FileLock.hs
--- a/System/FileLock.hs
+++ b/System/FileLock.hs
@@ -38,7 +38,6 @@
 import qualified Control.Exception as E
 import Control.Monad
 import Data.IORef
-import Data.Traversable (traverse)
 import Data.Typeable
 import Prelude
 
diff --git a/System/FileLock/Internal/Flock.hsc b/System/FileLock/Internal/Flock.hsc
--- a/System/FileLock/Internal/Flock.hsc
+++ b/System/FileLock/Internal/Flock.hsc
@@ -15,7 +15,14 @@
 import Foreign.C.Error
 import Foreign.C.Types
 import System.Posix.Files
-import System.Posix.IO (openFd, closeFd, defaultFileFlags, OpenMode(..), setFdOption, FdOption(..))
+import System.Posix.IO
+  ( openFd, closeFd, defaultFileFlags, OpenMode(..)
+#if MIN_VERSION_unix(2,8,0)
+  , OpenFileFlags(cloexec, creat)
+#else
+  , setFdOption, FdOption(..)
+#endif
+  )
 import System.Posix.Types
 import Prelude
 
@@ -43,18 +50,19 @@
 open :: FilePath -> IO Fd
 open path = do
 #if MIN_VERSION_unix(2,8,0)
-  fd <- openFd path WriteOnly defaultFileFlags
+  fd <- openFd path WriteOnly defaultFileFlags{ cloexec = True, creat = Just stdFileMode }
+    -- Field cloexec only available from unix-2.8
 #else
   fd <- openFd path WriteOnly (Just stdFileMode) defaultFileFlags
-#endif
-  -- Ideally, we would open the file descriptor with CLOEXEC enabled, but since
-  -- unix 2.8 hasn't been released yet and we want backwards compatibility with
-  -- older releases, we set CLOEXEC after opening the file descriptor.  This
-  -- may seem like a race condition at first. However, since the lock is always
-  -- taken after CLOEXEC is set, the worst that can happen is that a child
-  -- process inherits the open FD in an unlocked state. While non-ideal from a
-  -- performance standpoint, it doesn't introduce any locking bugs.
   setFdOption fd CloseOnExec True
+    -- Ideally, we would open the file descriptor with CLOEXEC enabled, but this
+    -- is not available in unix < 2.9.
+    -- So we set CLOEXEC after opening the file descriptor.  This
+    -- may seem like a race condition at first. However, since the lock is always
+    -- taken after CLOEXEC is set, the worst that can happen is that a child
+    -- process inherits the open FD in an unlocked state. While non-ideal from a
+    -- performance standpoint, it doesn't introduce any locking bugs.
+#endif
   return fd
 
 flock :: Fd -> Bool -> Bool -> IO Bool
diff --git a/filelock.cabal b/filelock.cabal
--- a/filelock.cabal
+++ b/filelock.cabal
@@ -1,31 +1,38 @@
--- Initial filelock.cabal generated by cabal init.  For further 
--- documentation, see http://haskell.org/cabal/users-guide/
-
+cabal-version:       >=1.10
 name:                filelock
-version:             0.1.1.5
+version:             0.1.1.6
 synopsis:            Portable interface to file locking (flock / LockFileEx)
 description:         This package provides an interface to Windows and Unix
                      file locking functionalities.
-homepage:            http://github.com/takano-akio/filelock
+homepage:            http://github.com/haskell-pkg-janitors/filelock
 license:             PublicDomain
 license-file:        LICENSE
 author:              Takano Akio
-maintainer:          tak@anoak.io
--- copyright:           
+maintainer:          Andreas Abel
 category:            System
 build-type:          Simple
--- extra-source-files:  
-cabal-version:       >=1.10
-extra-source-files:  tests/lock.log.expected
-tested-with:         GHC ==8.4.2 || ==8.6.5 || ==8.8.3
 
+extra-source-files:
+  CHANGELOG.md
+  tests/lock.log.expected
+
+tested-with:
+  GHC == 9.6.1
+  GHC == 9.4.4
+  GHC == 9.2.7
+  GHC == 9.0.2
+  GHC == 8.10.7
+  GHC == 8.8.4
+  GHC == 8.6.5
+  GHC == 8.4.4
+  GHC == 8.2.2
+
 library
+  hs-source-dirs:      .
   exposed-modules:     System.FileLock
   other-modules:       System.FileLock.Internal.Flock
                        System.FileLock.Internal.LockFileEx
-  -- other-extensions:    
   build-depends:       base >=4.9.0.0 && <5
-  -- hs-source-dirs:      
   default-language:    Haskell2010
 
   ghc-options:        -Wall
@@ -40,7 +47,7 @@
   type:               exitcode-stdio-1.0
   hs-source-dirs:     tests
   main-is:            test.hs
-  build-depends:      filelock, process >= 1.2.1.0, async, base
+  build-depends:      filelock, process >= 1.2.1.0, async >= 2.0.0.0, base
   ghc-options:        -threaded
   default-language:   Haskell2010
 
@@ -48,7 +55,7 @@
   type:               exitcode-stdio-1.0
   hs-source-dirs:     tests
   main-is:            interrupt.hs
-  build-depends:      filelock, process >= 1.2.1.0, async, base
+  build-depends:      filelock, process >= 1.2.1.0, base
   ghc-options:        -threaded
   default-language:   Haskell2010
   if os(windows)
@@ -56,4 +63,4 @@
 
 source-repository head
   type: git
-  location: https://github.com/takano-akio/filelock.git
+  location: https://github.com/haskell-pkg-janitors/filelock.git
