diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+* 0.9.10 (2016-03-24)
+- bugfixes
+  - update no longer tries to grep non-existent .git
+  - fix duplicate clibs
+- fix build with ghc-8.0 (Cabal-1.23 and time-1.6)
+- SuSE improvements: no disttag or rpmdev-bumpspec
+
 * 0.9.9 (2016-01-25)
 - couple of minor improvements for SUSE packaging
 
diff --git a/cabal-rpm.cabal b/cabal-rpm.cabal
--- a/cabal-rpm.cabal
+++ b/cabal-rpm.cabal
@@ -1,5 +1,5 @@
 Name:                cabal-rpm
-Version:             0.9.9
+Version:             0.9.10
 Synopsis:            RPM packaging tool for Haskell Cabal-based packages
 Description:
     This package provides a RPM packaging tool for Haskell Cabal-based packages.
@@ -34,7 +34,7 @@
 Executable cblrpm
     Main-is:            Main.hs
     Build-depends: base < 5,
-                   Cabal > 1.10 && < 1.23,
+                   Cabal > 1.10 && < 1.24,
                    directory,
                    filepath,
                    process,
@@ -43,7 +43,7 @@
        Build-Depends: old-locale >= 1 && < 1.1,
                       time >= 1.2 && < 1.5
     else
-       Build-Depends: time >= 1.5 && < 1.6
+       Build-Depends: time >= 1.5 && < 1.7
     Other-modules:
         Commands.Depends,
         Commands.Diff,
diff --git a/src/Commands/Spec.hs b/src/Commands/Spec.hs
--- a/src/Commands/Spec.hs
+++ b/src/Commands/Spec.hs
@@ -17,7 +17,7 @@
 -- (at your option) any later version.
 
 module Commands.Spec (
-  createSpecFile, createSpecFile_
+  createSpecFile, createSpecFile_, detectDistro, Distro(..)
   ) where
 
 import Dependencies (notInstalled, packageDependencies, showDep,
diff --git a/src/Commands/Update.hs b/src/Commands/Update.hs
--- a/src/Commands/Update.hs
+++ b/src/Commands/Update.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module      :  Commands.Update
--- Copyright   :  (C) 2014-2015  Jens Petersen
+-- Copyright   :  (C) 2014-2016  Jens Petersen
 --
 -- Maintainer  :  Jens Petersen <petersen@fedoraproject.org>
 -- Stability   :  alpha
@@ -16,9 +16,9 @@
   update
   ) where
 
-import Commands.Spec (createSpecFile)
+import Commands.Spec (createSpecFile, detectDistro, Distro(..))
 import FileUtils (withTempDirectory)
-import PackageUtils (PackageData (..), bringTarball, latestPkg,
+import PackageUtils (PackageData (..), bringTarball, isGitDir, latestPkg,
                      packageName, packageVersion, prepare, removePrefix)
 import Setup (RpmFlags (..))
 import SysCmd (cmd_, cmdBool, shell, (+-+))
@@ -27,7 +27,8 @@
 import Distribution.PackageDescription (PackageDescription (..))
 import Distribution.Simple.Utils (die)
                                         
-import System.Directory (createDirectory, setCurrentDirectory)
+import System.Directory (createDirectory, getCurrentDirectory,
+                         setCurrentDirectory)
 
 update :: PackageData -> RpmFlags -> IO ()
 update pkgdata flags =
@@ -43,7 +44,8 @@
         then error $ current +-+ "is latest version."
         else do
         bringTarball latest
-        rwGit <- cmdBool "grep -q 'url = ssh://' .git/config"
+        gitDir <- getCurrentDirectory >>= isGitDir
+        rwGit <- if gitDir then cmdBool "grep -q 'url = ssh://' .git/config" else return False
         when rwGit $
             cmd_ "fedpkg" ["new-sources", latest ++ ".tar.gz"]
         withTempDirectory $ \cwd -> do
@@ -51,9 +53,13 @@
           newspec <- createSpecVersion latest spec
           shell $ "diff -u1 -I \"- spec file generated by cabal-rpm\" -I \"Fedora Haskell SIG <haskell@lists.fedoraproject.org>\"" +-+ curspec +-+ newspec +-+ "| patch -d" +-+ cwd +-+ "-p1" +-+ "|| :"
           setCurrentDirectory cwd
-          cmd_ "sed" ["-i", "-e s/^\\(Release:        \\).*/\\10%{?dist}/", spec]
+          distro <- detectDistro
+          let suffix = if distro == SUSE then "" else "%{?dist}"
+          cmd_ "sed" ["-i", "-e s/^\\(Release:        \\).*/\\10" ++ suffix ++ "/", spec]
           let newver = removePrefix (name ++ "-") latest
-          cmd_ "rpmdev-bumpspec" ["-c", "update to" +-+ newver, spec]
+          if distro == SUSE
+            then cmd_ "sed" ["-i", "-e s/^\\(Version:        \\).*/\\1" ++ newver ++ "/", spec]
+            else cmd_ "rpmdev-bumpspec" ["-c", "update to" +-+ newver, spec]
           when rwGit $
             cmd_ "git" ["commit", "-a", "-m", "update to" +-+ newver]
   where
diff --git a/src/Dependencies.hs b/src/Dependencies.hs
--- a/src/Dependencies.hs
+++ b/src/Dependencies.hs
@@ -117,7 +117,7 @@
         tools = filter excludedTools $ nub $ map mapTools tools' ++ chrpath
     clibs <- catMaybes <$> mapM resolveLib clibs'
     let showPkgCfg p = "pkgconfig(" ++ p ++ ")"
-    return (map showDep deps, tools, clibs, map showPkgCfg pkgcfgs, selfdep)
+    return (map showDep deps, tools, nub clibs, map showPkgCfg pkgcfgs, selfdep)
 
 testsuiteDependencies :: PackageDescription  -- ^pkg description
                 -> String           -- ^self
diff --git a/src/SysCmd.hs b/src/SysCmd.hs
--- a/src/SysCmd.hs
+++ b/src/SysCmd.hs
@@ -33,21 +33,35 @@
 import Data.List        ((\\))
 import Data.Maybe       (fromMaybe, isJust, isNothing)
 
+import Distribution.Simple.Utils (die)
+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)
+import Distribution.Simple.Program.Find (defaultProgramSearchPath,
+                                         findProgramOnSearchPath)
+#else
 import Distribution.Simple.Utils (die, findProgramLocation)
+#endif
 import Distribution.Verbosity (normal)
 
 import System.Posix.User (getEffectiveUserID)
 import System.Process (readProcess, readProcessWithExitCode, system, rawSystem)
 import System.Exit (ExitCode(..))
 
+findProgram :: String -> IO (Maybe FilePath)
+findProgram =
+#if defined(MIN_VERSION_Cabal) && MIN_VERSION_Cabal(1,18,0)
+  findProgramOnSearchPath normal defaultProgramSearchPath
+#else
+  findProgramLocation normal
+#endif
+
 requireProgram :: String -> IO ()
 requireProgram c = do
-  mavail <- findProgramLocation normal c
+  mavail <- findProgram c
   when (isNothing mavail) $ die (c ++ ": command not found")
 
 optionalProgram :: String -> IO Bool
 optionalProgram c = do
-  mavail <- findProgramLocation normal c
+  mavail <- findProgram c
   return $ isJust mavail
 
 cmd_ :: String -> [String] -> IO ()
