diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+# 2.0.9 (2021-06-08)
+- spec: doc requires ghc-filesystem
+- spec: make %cabal_test conditional explicit
+- refresh: fix installation of cabal-rpm-version with cabal install
+- spec: tweak conditions for standalone sandbox (ie rhel8)
+
 # 2.0.8 (2021-03-27)
 - update: make sure krb ticket exists before uploading source
 - spec: executable doc files now handled by ghc-rpm-macros
@@ -7,7 +13,6 @@
 - spec: for bash-completions use default not filenames
 - Stackage: use lts-17
 - pkgInstallMissing: also install ghc-rpm-macros
-- spec: make %cabal_test conditional explicit
 
 # 2.0.7 (2020-10-07)
 - spec: setup bash completions for optparse-applicative
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:             2.0.8
+Version:             2.0.9
 Synopsis:            RPM packaging tool for Haskell Cabal-based packages
 Description:
     This package provides a RPM packaging tool for Haskell Cabal-based packages.
@@ -44,7 +44,7 @@
 Executable cabal-rpm
     Main-is:            Main.hs
     Build-depends: base < 5,
-                   Cabal > 1.10 && < 3.3,
+                   Cabal > 1.10 && < 3.5,
                    directory,
                    extra,
                    filepath,
diff --git a/src/Commands/Refresh.hs b/src/Commands/Refresh.hs
--- a/src/Commands/Refresh.hs
+++ b/src/Commands/Refresh.hs
@@ -18,7 +18,6 @@
   ) where
 
 import Commands.Spec (createSpecFile)
-import FileUtils (withTempDirectory)
 import Header (headerVersion, withSpecHead)
 import PackageUtils (PackageData (..), cabal_, patchSpec, prepare)
 import SysCmd (optionalProgram)
@@ -37,8 +36,7 @@
 import Data.Version (showVersion)
 import Distribution.Verbosity (silent)
 import SimpleCabal (customFieldsPD)
-import System.Directory (copyFile, createDirectoryIfMissing, doesFileExist,
-                         renameFile, setCurrentDirectory)
+import System.Directory (createDirectoryIfMissing, doesFileExist, renameFile)
 import System.Environment (getEnv)
 --import System.Exit (exitSuccess)
 import System.FilePath ((</>), (<.>))
@@ -91,19 +89,9 @@
         home <- getEnv "HOME"
         let bindir = home </> ".cblrpm/versions/"
         haveExe <- doesFileExist $ bindir </> cblrpmver
-        unless haveExe $
-          withTempDirectory $ \cwd -> do
-          cabal_ "unpack" [cblrpmver]
-          setCurrentDirectory cblrpmver
-          cabal_ "configure" []
-          cabal_ "build" []
+        unless haveExe $ do
           createDirectoryIfMissing True bindir
-          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
-        -- Fixme 1.0.1 supports --quiet
-        cmd_ (bindir </> cblrpmver) $ "spec" : ["--subpackage" | subpkg]
+          cabal_ "install" ["--enable-executable-stripping",
+                            "--installdir=" ++ bindir, cblrpmver]
+          renameFile (bindir </> "cabal-rpm") (bindir </> cblrpmver)
+        cmd_ (bindir </> cblrpmver) $ "spec" : "--quiet" : ["--subpackage" | subpkg]
diff --git a/src/Commands/Spec.hs b/src/Commands/Spec.hs
--- a/src/Commands/Spec.hs
+++ b/src/Commands/Spec.hs
@@ -416,6 +416,7 @@
       put $ "%package" +-+ subpkgParam Doc
       putHdr "Summary" $ "Haskell" +-+ pkg_name +-+ "library documentation"
       putHdr "BuildArch" "noarch"
+      putHdr "Requires" "ghc-filesystem"
       putNewline
       put $ "%description" +-+ subpkgParam Doc
       put $ wrapGenDesc $ "This package provides the Haskell" +-+ pkg_name +-+ "library documentation."
@@ -460,7 +461,7 @@
   put "# Begin cabal-rpm build:"
   if standalone then do
     put "cabal update"
-    put "%if 0%{fedora} < 33"
+    put "%if 0%{?rhel} && 0%{?rhel} < 9"
     put "cabal sandbox init"
     put "cabal install"
     put "%endif"
@@ -476,7 +477,7 @@
   put "# Begin cabal-rpm install"
   if standalone then do
     put "mkdir -p %{buildroot}%{_bindir}"
-    put "%if 0%{fedora} >= 33"
+    put "%if 0%{?fedora} >= 33 || 0%{?rhel} > 8"
     put "cabal install --install-method=copy --installdir=%{buildroot}%{_bindir}"
     put "%else"
     put "for i in .cabal-sandbox/bin/*; do"
@@ -519,7 +520,9 @@
 
   when testable $ do
     put "%check"
+    put "%if %{with tests}"
     put "%cabal_test"
+    put "%endif"
     sectionNewline
 
   let license_macro = "%license"
diff --git a/src/Dependencies.hs b/src/Dependencies.hs
--- a/src/Dependencies.hs
+++ b/src/Dependencies.hs
@@ -44,7 +44,9 @@
                     PackageDescription (package),
                     PackageName, pkgcfgDepName, pkgName,
                     setupDependencies, testsuiteDependencies,
+#if MIN_VERSION_Cabal(2,0,0)
                     unPackageName
+#endif
                    )
 import SimpleCmd (cmd, cmdBool, removePrefix, removeSuffix, warning, (+-+))
 import SimpleCmd.Rpm (rpmspec)
@@ -271,7 +273,7 @@
       -- fedora <- rpmEval "%fedora"
       -- let nogpgcheck = ["--nogpgcheck" | fedora `elem` []]
       noMacros <- notInstalled (RpmOther "ghc-rpm-macros")
-      rpmInstall True $ (map (showRpm . RpmHsLib Prof) repopkgs) ++ ["ghc-rpm-macros" | noMacros]
+      rpmInstall True $ map (showRpm . RpmHsLib Prof) repopkgs ++ ["ghc-rpm-macros" | noMacros]
     return missing'
       where
         repoqueryPackageConf :: String -> PackageName -> IO (Maybe PackageName)
