diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+* 0.12.3 (2018-05-14)
+- build: remove erroneous tarball check
+- refresh: use cblrpm for old cabal-rpm
+
 * 0.12.2 (2018-03-29)
 - diff now supports CBLRPM_DIFF envvar to override "diff -u"
 - try to build even when missing rpms deps not available
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.12.2
+Version:             0.12.3
 Synopsis:            RPM packaging tool for Haskell Cabal-based packages
 Description:
     This package provides a RPM packaging tool for Haskell Cabal-based packages.
@@ -72,7 +72,8 @@
         Options,
         PackageUtils,
         Stackage,
-        SysCmd
+        SysCmd,
+        Paths_cabal_rpm
     Hs-Source-Dirs:     src
     GHC-options:        -fwarn-missing-signatures -Wall
     Extensions:         CPP
diff --git a/src/Commands/Install.hs b/src/Commands/Install.hs
--- a/src/Commands/Install.hs
+++ b/src/Commands/Install.hs
@@ -42,7 +42,7 @@
   spec <- rpmBuild pkgdata flags Binary
   arch <- cmd "arch" []
   rpmdir <- cmd "rpm" ["--eval", "%{_rpmdir}"]
-  rpms <- (map (\ p -> rpmdir </> arch </> p ++ ".rpm") . lines) <$>
+  rpms <- map (\ p -> rpmdir </> arch </> p ++ ".rpm") . lines <$>
           cmd "rpmspec" ["-q", spec]
   -- metapkgs don't have base package
   filterM doesFileExist rpms >>= rpmInstall
diff --git a/src/Commands/Refresh.hs b/src/Commands/Refresh.hs
--- a/src/Commands/Refresh.hs
+++ b/src/Commands/Refresh.hs
@@ -89,7 +89,10 @@
           cabal_ "configure" []
           cabal_ "build" []
           createDirectoryIfMissing True bindir
-          let bin = "dist/build/cabal-rpm/cabal-rpm"
+          let bin = "dist/build/cabal-rpm" </>
+                    -- this should really be <= 0.9.11 (and >= 0.7.0)
+                    -- but anyway before 0.9.11 we didn't version .spec files
+                    if crver == "0.9.11" then "cblrpm" else "cabal-rpm"
           cmd_ "strip" [bin]
           copyFile bin $ bindir </> cblrpmver
           setCurrentDirectory cwd
diff --git a/src/Commands/RpmBuild.hs b/src/Commands/RpmBuild.hs
--- a/src/Commands/RpmBuild.hs
+++ b/src/Commands/RpmBuild.hs
@@ -32,9 +32,6 @@
 
 --import Distribution.Version (VersionRange, foldVersionRange')
 
-import System.Directory (doesFileExist)
-import System.FilePath ((</>))
-
 -- autoreconf :: Verbosity -> PackageDescription -> IO ()
 -- autoreconf verbose pkgDesc = do
 --     ac <- doesFileExist "configure.ac"
@@ -63,11 +60,6 @@
   unless (stage == BuildDep) $ do
     srcdir <- cmd "rpm" ["--eval", "%{_sourcedir}"]
     let version = packageVersion pkg
-        tarFile = srcdir </> name ++ "-" ++ version ++ ".tar.gz"
-
-    tarFileExists <- doesFileExist tarFile
-    unless tarFileExists $
-      error "No tarball for source repo"
 
     copyTarball name version False srcdir
 
diff --git a/src/Commands/Spec.hs b/src/Commands/Spec.hs
--- a/src/Commands/Spec.hs
+++ b/src/Commands/Spec.hs
@@ -144,7 +144,7 @@
       ghcPkgDevel = if binlib then "-n ghc-%{name}-devel" else "devel"
 
   put $ "# generated by cabal-rpm-" ++ Data.Version.showVersion Paths_cabal_rpm.version
-  distro <- fromMaybe detectDistro (return <$> rpmDistribution flags)
+  distro <- maybe detectDistro return (rpmDistribution flags)
   if distro /= SUSE
     then put "# https://fedoraproject.org/wiki/Packaging:Haskell"
     else do
@@ -419,7 +419,7 @@
       mapM_ (\ l -> put $ license_macro +-+ l) licensefiles
       when (distro == SUSE && not binlib) $
         mapM_ ((\ p -> put $ "%{_bindir}" </> (if p == name then "%{pkg_name}" else p)) . unUnqualComponentName) execs
-      when (notNull datafiles && (selfdep  || not binlib)) $
+      when (notNull datafiles && (selfdep || not binlib)) $
         put $ "%{_datadir}" </> pkgver
       sectionNewline
     put $ "%files" +-+ ghcPkgDevel +-+  develFiles
diff --git a/src/Commands/Update.hs b/src/Commands/Update.hs
--- a/src/Commands/Update.hs
+++ b/src/Commands/Update.hs
@@ -60,7 +60,7 @@
           newspec <- createSpecVersion latest spec
           patchSpec (Just cwd) curspec newspec
           setCurrentDirectory cwd
-          distro <- fromMaybe detectDistro (return <$> rpmDistribution flags)
+          distro <- maybe detectDistro return (rpmDistribution flags)
           let suffix = if distro == SUSE then "" else "%{?dist}"
           subpkg <- grep_ "%{subpkgs}" spec
           unless (subpkg || rpmSubpackage flags) $
diff --git a/src/SysCmd.hs b/src/SysCmd.hs
--- a/src/SysCmd.hs
+++ b/src/SysCmd.hs
@@ -67,9 +67,8 @@
   when (isNothing mavail) $ die (c ++ ": command not found")
 
 optionalProgram :: String -> IO Bool
-optionalProgram c = do
-  mavail <- findProgram c
-  return $ isJust mavail
+optionalProgram c =
+  isJust <$> findProgram c
 
 cmd_ :: String -> [String] -> IO ()
 cmd_ c args = do
