diff --git a/cabal2spec.cabal b/cabal2spec.cabal
--- a/cabal2spec.cabal
+++ b/cabal2spec.cabal
@@ -1,5 +1,5 @@
 name:               cabal2spec
-version:            2.5
+version:            2.6
 synopsis:           Convert Cabal files into rpm spec files
 description:        Convert
                     Cabal files into a
@@ -14,7 +14,8 @@
 license-file:       LICENSE
 author:             Peter Simons, Bryan O'Sullivan, Jens Petersen
 maintainer:         simons@cryp.to
-tested-with:        GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2
+tested-with:        GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5,
+                    GHC == 8.8.2, GHC == 8.10.1
 category:           Distribution
 homepage:           https://github.com/peti/cabal2spec
 build-type:         Simple
@@ -30,7 +31,7 @@
 library
   exposed-modules:  Cabal2Spec
   hs-source-dirs:   src
-  build-depends:    base < 5, Cabal > 3.0 && < 3.2, filepath, time >= 1.5
+  build-depends:    base > 4.8 && < 5, Cabal == 3.2.*, filepath, time >= 1.5
   default-language: Haskell2010
 
 executable cabal2spec
diff --git a/src/Cabal2Spec.hs b/src/Cabal2Spec.hs
--- a/src/Cabal2Spec.hs
+++ b/src/Cabal2Spec.hs
@@ -19,6 +19,7 @@
 import Distribution.Types.PackageDescription
 import Distribution.Types.PkgconfigDependency
 import Distribution.Types.UnqualComponentName
+import Distribution.Utils.ShortText ( fromShortText )
 import Distribution.Verbosity
 import Distribution.Version
 import System.FilePath
@@ -121,12 +122,12 @@
   putNewline
 
   -- Some packages conflate the synopsis and description fields.  Ugh.
-  let syn = synopsis pkgDesc
+  let syn = fromShortText (synopsis pkgDesc)
   let initialCapital (c:cs) = toUpper c:cs
       initialCapital [] = []
   let syn' = if badDescription syn then "FIXME" else (unwords . lines . initialCapital) syn
-  let summary = rstrip (== '.') syn'
-  let descr = description pkgDesc
+  let summary = rstrip (== '.') . rstrip isSpace $ syn'
+  let descr = rstrip isSpace (fromShortText (description pkgDesc))
   let descLines = (formatParagraphs . initialCapital . filterSymbols . finalPeriod) $ if badDescription descr then syn' else descr
       finalPeriod cs = if last cs == '.' then cs else cs ++ "."
       filterSymbols (c:cs) =
diff --git a/test/golden-test-cases/HTTP.spec.golden b/test/golden-test-cases/HTTP.spec.golden
--- a/test/golden-test-cases/HTTP.spec.golden
+++ b/test/golden-test-cases/HTTP.spec.golden
@@ -86,7 +86,7 @@
 
 * <http://hackage.haskell.org/package/req req>
 
-* <http://hackage.haskell.org/package/wreq wreq> .
+* <http://hackage.haskell.org/package/wreq wreq>.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/accelerate.spec.golden b/test/golden-test-cases/accelerate.spec.golden
--- a/test/golden-test-cases/accelerate.spec.golden
+++ b/test/golden-test-cases/accelerate.spec.golden
@@ -143,7 +143,7 @@
 <http://groups.google.com/group/accelerate-haskell>
 
 * Bug reports and issue tracking:
-<https://github.com/AccelerateHS/accelerate/issues> .
+<https://github.com/AccelerateHS/accelerate/issues>.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/aeson-diff.spec.golden b/test/golden-test-cases/aeson-diff.spec.golden
--- a/test/golden-test-cases/aeson-diff.spec.golden
+++ b/test/golden-test-cases/aeson-diff.spec.golden
@@ -51,7 +51,7 @@
 %description
 This is a small library for working with changes to JSON documents. It includes
 a library and two command-line executables in the style of the diff(1) and
-patch(1) commands available on many systems. .
+patch(1) commands available on many systems.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/blank-canvas.spec.golden b/test/golden-test-cases/blank-canvas.spec.golden
--- a/test/golden-test-cases/blank-canvas.spec.golden
+++ b/test/golden-test-cases/blank-canvas.spec.golden
@@ -73,7 +73,7 @@
 <<https://github.com/ku-fpg/blank-canvas/wiki/images/Red_Line.png>>
 
 For more details, read the <https://github.com/ku-fpg/blank-canvas/wiki
-blank-canvas wiki>. .
+blank-canvas wiki>.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/hit.spec.golden b/test/golden-test-cases/hit.spec.golden
--- a/test/golden-test-cases/hit.spec.golden
+++ b/test/golden-test-cases/hit.spec.golden
@@ -58,7 +58,7 @@
 
 This is stricly only manipulating the git store (what's inside the .git
 directory), and doesn't do anything with the index or your working directory
-files. .
+files.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/iso639.spec.golden b/test/golden-test-cases/iso639.spec.golden
--- a/test/golden-test-cases/iso639.spec.golden
+++ b/test/golden-test-cases/iso639.spec.golden
@@ -34,7 +34,7 @@
 <http://www.loc.gov/standards/iso639-2/php/English_list.php official site>
 using haskell-src-exts in an extra file included in the .tar.gz.
 
-Special thanks to Petter Bergman for the suggestions and bug fixing .
+Special thanks to Petter Bergman for the suggestions and bug fixing.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/katydid.spec.golden b/test/golden-test-cases/katydid.spec.golden
--- a/test/golden-test-cases/katydid.spec.golden
+++ b/test/golden-test-cases/katydid.spec.golden
@@ -56,7 +56,7 @@
 used to create Json and XML trees that can be validated.
 
 If you want to implement your own parser then you can look at the Parsers
-module .
+module.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/mersenne-random.spec.golden b/test/golden-test-cases/mersenne-random.spec.golden
--- a/test/golden-test-cases/mersenne-random.spec.golden
+++ b/test/golden-test-cases/mersenne-random.spec.golden
@@ -55,7 +55,7 @@
 and, Mutsuo Saito and Makoto Matsumoto, /SIMD-oriented Fast Mersenne Twister: a
 128-bit Pseudorandom Number Generator/, in the Proceedings of MCQMC2006, here:
 
-<http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/sfmt.pdf> .
+<http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/sfmt.pdf>.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/quickcheck-combinators.spec.golden b/test/golden-test-cases/quickcheck-combinators.spec.golden
--- a/test/golden-test-cases/quickcheck-combinators.spec.golden
+++ b/test/golden-test-cases/quickcheck-combinators.spec.golden
@@ -37,7 +37,7 @@
 import Test.QuickCheck import Test.QuickCheck.Instances import GHC.TypeLits
 &#13; instance Arbitrary LinearEquation where &#32;&#32;arbitrary = do
 &#32;&#32;&#32;&#32;vars <- arbitrary :: Gen (AtLeast 3 Set String)
-&#32;&#32;&#32;&#32;&#45;&#45; ... ' .
+&#32;&#32;&#32;&#32;&#45;&#45; ... '.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/unlit.spec.golden b/test/golden-test-cases/unlit.spec.golden
--- a/test/golden-test-cases/unlit.spec.golden
+++ b/test/golden-test-cases/unlit.spec.golden
@@ -38,7 +38,7 @@
 Target style (bird, latex, tildefence, backtickfence, code) > -i FILE
 --input=FILE Input file (optional) > -o FILE --output=FILE Output file
 (optional) > -l LANGUAGE --language=LANGUAGE Programming language (restrict
-fenced code blocks) > -h --help Show help > -v --version Show version .
+fenced code blocks) > -h --help Show help > -v --version Show version.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
diff --git a/test/golden-test-cases/xmonad-contrib.spec.golden b/test/golden-test-cases/xmonad-contrib.spec.golden
--- a/test/golden-test-cases/xmonad-contrib.spec.golden
+++ b/test/golden-test-cases/xmonad-contrib.spec.golden
@@ -54,7 +54,7 @@
 "XMonad.Doc.Extending", using the contributed extensions library
 
 "XMonad.Doc.Developing", introduction to xmonad internals and writing your own
-extensions. .
+extensions.
 
 %package -n ghc-%{name}
 Summary:        Haskell %{name} library
