diff --git a/Tests.hs b/Tests.hs
--- a/Tests.hs
+++ b/Tests.hs
@@ -4,7 +4,11 @@
 
 import Debian.Debianize.Optparse(_flags, parseProgramArguments)
 import Control.Lens
+#if MIN_VERSION_Diff(1,0,0)
+import Data.Algorithm.DiffContext (getContextDiff, prettyContextDiff, unnumber)
+#else
 import Data.Algorithm.DiffContext (getContextDiff, prettyContextDiff)
+#endif
 import Data.Bool (bool)
 import Data.Function (on)
 import Data.List (sortBy)
@@ -418,7 +422,7 @@
              (A.debInfo . D.missingDependencies) %= Set.insert (BinPkgName "libghc-clckwrks-theme-clckwrks-doc")
              (A.debInfo . D.sourceFormat) .= Native3
              (A.debInfo . D.control . S.homepage) .= Just "http://www.clckwrks.com/"
-             newDebianization' (Just 9) (Just (StandardsVersion 3 9 6 Nothing))
+             newDebianization' (Just 13) (Just (StandardsVersion 3 9 6 Nothing))
 {-
       customize log = modifyM (lift . customize' log)
       customize' :: Maybe ChangeLog -> CabalInfo -> IO CabalInfo
@@ -439,7 +443,7 @@
       serverNames = map BinPkgName ["clckwrks-dot-com-production"] -- , "clckwrks-dot-com-staging", "clckwrks-dot-com-development"]
       -- Insert a line just above the debhelper.mk include
       fixRules =
-          (debInfo . D.rulesSettings) %= (++ ["DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups"])
+          (debInfo . D.rulesSettings) %= (++ ["export DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups"])
 {-
           mapAtoms f deb
           where
@@ -447,7 +451,7 @@
             f Source (DebRulesHead t) =
                 singleton (Source, DebRulesHead (T.unlines $ concat $
                                                  map (\ line -> if line == "include /usr/share/cdbs/1/rules/debhelper.mk"
-                                                                then ["DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups", "", line] :: [T.Text]
+                                                                then ["export DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups", "", line] :: [T.Text]
                                                                 else [line] :: [T.Text]) (T.lines t)))
             f k a = singleton (k, a)
 -}
@@ -690,7 +694,7 @@
           do (A.debInfo . D.flags . verbosity) .= 1
              (A.debInfo . D.sourceFormat) .= Native3
              (A.debInfo . D.sourcePackageName) .= Just (SrcPkgName "seereason-darcs-backups")
-             (A.debInfo . D.compat) .= Just 9
+             (A.debInfo . D.compat) .= Just 13
              (A.debInfo . D.control . S.standardsVersion) .= Just (StandardsVersion 3 8 1 Nothing)
              (A.debInfo . D.control . S.maintainer) .= parseMaintainer "David Fox <dsf@seereason.com>"
              (A.debInfo . D.binaryDebDescription (BinPkgName "seereason-darcs-backups") . B.relations . B.depends) %= (++ [[Rel (BinPkgName "anacron") Nothing Nothing]])
@@ -734,15 +738,28 @@
       prettyChange (Deleted p _) = text "Deleted: " <> pPrint p <> text "\n"
       prettyChange (Created p b) =
           text "Created: " <> pPrint p <> text "\n" <>
+#if MIN_VERSION_Diff(1,0,0)
+          prettyContextDiff (text ("old" </> p)) (text ("new" </> p)) (text . unpack . unnumber)
+                     -- We use split here instead of lines so we can
+                     -- detect whether the file has a final newline
+                     -- character.
+                     (getContextDiff (Just 2) mempty (split (== '\n') b))
+#else
           prettyContextDiff (text ("old" </> p)) (text ("new" </> p)) (text . unpack)
                      -- We use split here instead of lines so we can
                      -- detect whether the file has a final newline
                      -- character.
                      (getContextDiff 2 mempty (split (== '\n') b))
+#endif
       prettyChange (Modified p a b) =
           text "Modified: " <> pPrint p <> text "\n" <>
+#if MIN_VERSION_Diff(1,0,0)
+          prettyContextDiff (text ("old" </> p)) (text ("new" </> p)) (text . unpack . unnumber)
+                     (getContextDiff (Just 2) (split (== '\n') a) (split (== '\n') b))
+#else
           prettyContextDiff (text ("old" </> p)) (text ("new" </> p)) (text . unpack)
                      (getContextDiff 2 (split (== '\n') a) (split (== '\n') b))
+#endif
 
 sortBinaryDebs :: DebianT IO ()
 sortBinaryDebs = (D.control . S.binaryPackages) %= sortBy (compare `on` view B.package)
diff --git a/cabal-debian.cabal b/cabal-debian.cabal
--- a/cabal-debian.cabal
+++ b/cabal-debian.cabal
@@ -1,6 +1,6 @@
 cabal-version:  3.0
 Name:           cabal-debian
-Version:        5.3.0
+Version:        5.4.0
 Copyright:      Copyright (c) 2007-2014, David Fox, Jeremy Shaw; 2017-2025 Clint Adams
 License:        BSD-3-Clause
 License-File:   LICENSE
@@ -22,7 +22,6 @@
   debian/cabal-debian.1
   debian/cabal-debian.install
   debian/cabal-debian.manpages
-  debian/compat
   debian/control
   debian/copyright
   debian/Debianize.hs
@@ -46,7 +45,6 @@
   test-data/creativeprompts/output/debian/creativeprompts-backups.postinst
   test-data/creativeprompts/output/debian/creativeprompts-production.dirs
   test-data/creativeprompts/output/debian/rules
-  test-data/creativeprompts/output/debian/compat
   test-data/creativeprompts/output/debian/source/format
   test-data/creativeprompts/output/debian/control
   test-data/creativeprompts/output/debian/creativeprompts-data.install
@@ -60,7 +58,6 @@
   test-data/clckwrks-dot-com/output/debian/changelog
   test-data/clckwrks-dot-com/output/debian/Debianize.hs
   test-data/clckwrks-dot-com/output/debian/rules
-  test-data/clckwrks-dot-com/output/debian/compat
   test-data/clckwrks-dot-com/output/debian/source/format
   test-data/clckwrks-dot-com/output/debian/control
   test-data/clckwrks-dot-com/output/debian/copyright
@@ -69,7 +66,6 @@
   test-data/haskell-devscripts/debian/changelog
   test-data/haskell-devscripts/debian/install
   test-data/haskell-devscripts/debian/rules
-  test-data/haskell-devscripts/debian/compat
   test-data/haskell-devscripts/debian/dirs
   test-data/haskell-devscripts/debian/source/format
   test-data/haskell-devscripts/debian/control
@@ -81,7 +77,6 @@
   test-data/alex/output/debian/alex.install
   test-data/alex/output/debian/changelog
   test-data/alex/output/debian/rules
-  test-data/alex/output/debian/compat
   test-data/alex/output/debian/source/format
   test-data/alex/output/debian/control
   test-data/alex/output/debian/copyright
@@ -93,7 +88,6 @@
   test-data/artvaluereport-data/output/debian/changelog
   test-data/artvaluereport-data/output/debian/Debianize.hs
   test-data/artvaluereport-data/output/debian/rules
-  test-data/artvaluereport-data/output/debian/compat
   test-data/artvaluereport-data/output/debian/source/format
   test-data/artvaluereport-data/output/debian/control
   test-data/artvaluereport-data/output/debian/copyright
@@ -103,7 +97,6 @@
   test-data/archive/output/debian/watch
   test-data/archive/output/debian/changelog
   test-data/archive/output/debian/rules
-  test-data/archive/output/debian/compat
   test-data/archive/output/debian/control
   test-data/archive/output/debian/seereason-darcs-backups.install
   test-data/archive/output/debian/copyright
@@ -130,7 +123,6 @@
   test-data/artvaluereport2/output/debian/artvaluereport2-production.init
   test-data/artvaluereport2/output/debian/artvaluereport2-production.dirs
   test-data/artvaluereport2/output/debian/rules
-  test-data/artvaluereport2/output/debian/compat
   test-data/artvaluereport2/output/debian/appraisalscope.install
   test-data/artvaluereport2/output/debian/control
   test-data/artvaluereport2/output/debian/artvaluereport2-backups.install
@@ -148,11 +140,9 @@
   GHC-Options: -Wall
   Build-Depends:
     base >= 4.17 && < 5,
-    bifunctors,
     Cabal >= 3.0 && < 3.15,
     containers,
     data-default,
-    deepseq,
     Diff >= 0.3.1 && < 2,
     directory,
     exceptions,
@@ -173,7 +163,7 @@
     unliftio >= 0.2.8.0,
     utf8-string,
     optparse-applicative >= 0.11 && < 0.20,
-    ansi-wl-pprint >= 0.6 && < 1.1,
+    prettyprinter,
     debian >= 3.95
   Exposed-Modules:
     Data.Maybe.Extended
@@ -217,12 +207,7 @@
   ghc-options: -threaded -Wall
   Build-Depends:
     base >= 4.17 && <5,
-    cabal-debian,
-    Cabal >= 3.0 && < 3.15,
-    debian >= 3.95,
-    lens,
-    mtl,
-    pretty >= 1.1.2
+    cabal-debian
 
 Test-Suite cabal-debian-tests
   Default-Language: Haskell2010
diff --git a/debian/Debianize.hs b/debian/Debianize.hs
--- a/debian/Debianize.hs
+++ b/debian/Debianize.hs
@@ -42,7 +42,7 @@
 
              -- Add dependencies to the binary debs.
              (debInfo . binaryDebDescription (BinPkgName "cabal-debian") . relations . depends) %=
-                (++ (rels "apt-file, debian-policy, debhelper, haskell-devscripts (>= 0.8.19)"))
+                (++ (rels "apt-file, debian-policy, dh-sequence-haskell, haskell-devscripts (>= 0.16.8)"))
              (debInfo . binaryDebDescription (BinPkgName "libghc-cabal-debian-dev") . relations . depends) %=
                 (++ (rels "debian-policy"))
 
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
--- a/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/src/Debian/Debianize/BuildDependencies.hs b/src/Debian/Debianize/BuildDependencies.hs
--- a/src/Debian/Debianize/BuildDependencies.hs
+++ b/src/Debian/Debianize/BuildDependencies.hs
@@ -155,10 +155,10 @@
        ghcprof <- liftIO $ compilerPackageName hflavor B.Profiling
        let ghcrel = if member GHC hcs then maybe [] ((: []) . anyrel') ghcdev else []
        let ghcrelprof = if prof then maybe [] ((: []) . anyrel') ghcprof else []
-       let xs = nub $ [maybe [] (\ n -> [D.Rel (D.BinPkgName "debhelper") (Just (D.GRE (parseDebianVersion' (show n)))) Nothing]) compat,
+       let xs = nub $ [maybe [] (\ n -> [D.Rel (D.BinPkgName "debhelper-compat") (Just (D.EEQ (parseDebianVersion' (show n)))) Nothing]) compat,
                        [D.Rel (D.BinPkgName "haskell-devscripts-minimal") Nothing Nothing,
-                        D.Rel (D.BinPkgName "haskell-devscripts") (Just $ D.GRE $ parseDebianVersion' ("0.13" :: String)) Nothing],
-                       anyrel "cdbs"] ++
+                        D.Rel (D.BinPkgName "haskell-devscripts") (Just $ D.GRE $ parseDebianVersion' ("0.16.42" :: String)) Nothing],
+                       anyrel "dh-sequence-haskell"] ++
                       (ghcrel ++ ghcrelprof) ++
                        bDeps ++
                        cDeps
diff --git a/src/Debian/Debianize/Bundled.hs b/src/Debian/Debianize/Bundled.hs
--- a/src/Debian/Debianize/Bundled.hs
+++ b/src/Debian/Debianize/Bundled.hs
@@ -163,6 +163,7 @@
                          actual = Set.fromList (map (unPackageName . pkgName) acp)
                          missing (Just "8.0.1") = Set.fromList ["bin-package-db"]
                          missing (Just "8.0.2") = Set.fromList ["bin-package-db"]
+                         missing (Just "8.8.4") = Set.fromList ["bin-package-db", "hoopl"]
                          missing (Just "9.0.2") = Set.fromList ["bin-package-db", "hoopl"]
                          missing (Just "9.4.6") = Set.fromList ["bin-package-db", "hoopl"]
                          missing (Just "9.6.6") = Set.fromList ["bin-package-db", "hoopl"]
@@ -170,6 +171,7 @@
                          extra (Just "7.8.4") = Set.fromList ["haskell2010","haskell98","old-locale","old-time"]
                          extra (Just "8.0.1") = Set.fromList ["ghc-boot","ghc-boot-th","ghci"]
                          extra (Just "8.0.2") = Set.fromList ["ghc-boot","ghc-boot-th","ghci"]
+                         extra (Just "8.8.4") = Set.fromList ["ghc-boot", "ghc-boot-th", "ghc-compact", "ghc-heap", "ghci", "libiserv", "mtl", "parsec", "stm", "text"]
                          extra (Just "9.0.2") = Set.fromList ["exceptions", "ghc-bignum", "ghc-boot", "ghc-boot-th", "ghc-compact", "ghc-heap", "ghci", "libiserv", "mtl", "parsec", "stm", "text"]
                          extra (Just "9.4.6") = Set.fromList ["exceptions", "ghc-bignum", "ghc-boot", "ghc-boot-th", "ghc-compact", "ghc-heap", "ghci", "libiserv", "mtl", "parsec", "stm", "text"]
                          extra (Just "9.6.6") = Set.fromList ["Cabal-syntax","exceptions","ghc-bignum","ghc-boot","ghc-boot-th","ghc-compact","ghc-heap","ghci","libiserv","mtl","parsec","rts","stm","system-cxx-std-lib","text"]
diff --git a/src/Debian/Debianize/DebInfo.hs b/src/Debian/Debianize/DebInfo.hs
--- a/src/Debian/Debianize/DebInfo.hs
+++ b/src/Debian/Debianize/DebInfo.hs
@@ -50,7 +50,7 @@
     , maintainerOption
     , uploadersOption
     , utilsPackageNameBase
-    , xDescriptionText
+    , descriptionText
     , comments
     , missingDependencies
     , extraLibMap
@@ -202,8 +202,8 @@
       , _utilsPackageNameBase :: Maybe String
       -- ^ Name of a package that will get left-over data files and executables.
       -- If there are more than one, each package will get those files.
-      , _xDescriptionText :: Maybe Text
-      -- ^ The text for the X-Description field of the Source package stanza.
+      , _descriptionText :: Maybe Text
+      -- ^ The text for the Description field of the Source package stanza.
       , _comments :: Maybe [[Text]]
       -- ^ Each element is a comment to be added to the changelog, where the
       -- element's text elements are the lines of the comment.
@@ -345,7 +345,7 @@
     , _maintainerOption = Nothing
     , _uploadersOption = []
     , _utilsPackageNameBase = Nothing
-    , _xDescriptionText = Nothing
+    , _descriptionText = Nothing
     , _comments = Nothing
     , _missingDependencies = mempty
     , _extraLibMap = mempty
diff --git a/src/Debian/Debianize/Files.hs b/src/Debian/Debianize/Files.hs
--- a/src/Debian/Debianize/Files.hs
+++ b/src/Debian/Debianize/Files.hs
@@ -23,7 +23,7 @@
 import Debian.Debianize.Prelude (escapeDebianWildcards, showDeps')
 import qualified Debian.Debianize.BinaryDebDescription as B (architecture, BinaryDebDescription, binaryPriority, multiArch, binarySection, breaks, builtUsing, conflicts, depends, description, essential, package, PackageRelations, preDepends, provides, recommends, relations, replaces, suggests)
 import Debian.Debianize.CopyrightDescription (CopyrightDescription)
-import qualified Debian.Debianize.SourceDebDescription as S (binaryPackages, buildConflicts, buildConflictsIndep, buildDepends, buildDependsIndep, dmUploadAllowed, homepage, maintainer, priority, rulesRequiresRoot, section, source, SourceDebDescription, standardsVersion, uploaders, vcsFields, VersionControlSpec(VCSArch, VCSBrowser, VCSBzr, VCSCvs, VCSDarcs, VCSGit, VCSHg, VCSMtn, VCSSvn), xDescription, XField(XField), XFieldDest(B, C, S), xFields)
+import qualified Debian.Debianize.SourceDebDescription as S (binaryPackages, buildConflicts, buildConflictsIndep, buildDepends, buildDependsIndep, dmUploadAllowed, homepage, maintainer, priority, rulesRequiresRoot, section, source, SourceDebDescription, standardsVersion, uploaders, vcsFields, VersionControlSpec(VCSArch, VCSBrowser, VCSBzr, VCSCvs, VCSDarcs, VCSGit, VCSHg, VCSMtn, VCSSvn), sourceDescription, XField(XField), XFieldDest(B, C, S), xFields)
 import Debian.Policy (maintainerOfLastResort)
 import Debian.Pretty (PP(..), ppShow, prettyText, ppText, ppPrint)
 import Debian.Relation (BinPkgName(BinPkgName), Relations)
@@ -52,7 +52,6 @@
        tell =<< control
        tell =<< changelog
        tell =<< rules
-       tell =<< compat
        tell =<< copyright
        tell =<< sourceFormatFiles
        tell =<< watchFile
@@ -158,11 +157,6 @@
     do d <- lift $ use D.control
        return [("debian/control", prettyText (controlFile d))]
 
-compat :: (Monad m) => FilesT m [(FilePath, Text)]
-compat =
-    do t <- lift $ use D.compat
-       return [("debian/compat", pack (show (fromMaybe (error "Missing DebCompat atom - is debhelper installed?") $ t) <> "\n"))]
-
 copyright :: (Monad m) => FilesT m [(FilePath, Text)]
 copyright =
     do copyrt <- lift $ use (D.copyright)
@@ -191,7 +185,7 @@
             mField "Homepage" (view S.homepage src) ++
             List.map vcsField (Set.toList (view S.vcsFields src)) ++
             List.map xField (Set.toList (view S.xFields src)) ++
-            mField "X-Description" (view S.xDescription src)) :
+            mField "Description" (view S.sourceDescription src)) :
            List.map binary (view S.binaryPackages src))
     }
     where
diff --git a/src/Debian/Debianize/Finalize.hs b/src/Debian/Debianize/Finalize.hs
--- a/src/Debian/Debianize/Finalize.hs
+++ b/src/Debian/Debianize/Finalize.hs
@@ -120,8 +120,8 @@
        testsStatus <- use (A.debInfo . D.testsStatus)
        let testsExist = not $ List.null $ Cabal.testSuites pkgDesc
        case (testsExist, testsStatus) of
-         (True, D.TestsRun) -> (A.debInfo . D.rulesSettings) %= (++ ["DEB_ENABLE_TESTS = yes"])
-         (True, D.TestsBuild) -> (A.debInfo . D.rulesSettings) %= (++ ["DEB_ENABLE_TESTS = yes", "DEB_BUILD_OPTIONS += nocheck"])
+         (True, D.TestsRun) -> (A.debInfo . D.rulesSettings) %= (++ ["export DEB_ENABLE_TESTS = yes"])
+         (True, D.TestsBuild) -> (A.debInfo . D.rulesSettings) %= (++ ["export DEB_ENABLE_TESTS = yes", "export DEB_BUILD_OPTIONS += nocheck"])
          _ -> return ()
  
        finalizeSourceName B.HaskellSource
@@ -315,7 +315,7 @@
        Just src <- use (A.debInfo . D.sourcePackageName)
        (A.debInfo . D.control . S.source) .= Just src
        desc' <- describe
-       (A.debInfo . D.control . S.xDescription) .?= Just desc'
+       (A.debInfo . D.control . S.sourceDescription) .?= Just desc'
        -- control %= (\ y -> y { D.source = Just src, D.maintainer = Just maint })
 
 describe :: Monad m => CabalT m Text
@@ -612,7 +612,6 @@
        when (not (Set.null utilsData && Set.null utilsExec)) $ do
          (A.debInfo . D.binaryDebDescription b . B.description) .?= Just desc
          -- This is really for all binary debs except the libraries - I'm not sure why
-         (A.debInfo . D.rulesFragments) %= Set.insert (pack ("build" </> ppShow b ++ ":: build-ghc-stamp\n"))
          (A.debInfo . D.binaryDebDescription b . B.architecture) .?= Just (if Set.null utilsExec then All else Any)
          (A.debInfo . D.binaryDebDescription b . B.binarySection) .?= Just (MainSection "misc")
          binaryPackageRelations b B.Utilities
@@ -747,12 +746,10 @@
        cpn <- liftIO $ compilerPackageName hc B.Development
        let BinPkgName hcdeb = fromMaybe (error "No compiler package") cpn
        (A.debInfo . D.rulesHead) .?= Just "#!/usr/bin/make -f"
-       (A.debInfo . D.rulesSettings) %= (++ ["DEB_CABAL_PACKAGE = " <> pack b])
-       (A.debInfo . D.rulesSettings) %= (++ ["DEB_DEFAULT_COMPILER = " <> pack hcdeb])
        flags <- flagString . Set.toList <$> use (A.debInfo . D.flags . cabalFlagAssignments)
-       unless (List.null flags) ((A.debInfo . D.rulesSettings) %= (++ ["DEB_SETUP_GHC_CONFIGURE_ARGS = " <> pack flags]))
-       (A.debInfo . D.rulesIncludes) %= (++ ["include /usr/share/cdbs/1/rules/debhelper.mk",
-                                             "include /usr/share/cdbs/1/class/hlibrary.mk"])
+       unless (List.null flags) ((A.debInfo . D.rulesSettings) %= (++ ["export DEB_SETUP_GHC_CONFIGURE_ARGS = " <> pack flags]))
+       (A.debInfo . D.rulesIncludes) %= (++ ["%:",
+                                             "\tdh $@"])
 
 data Dependency_
   = BuildDepends Dependency
diff --git a/src/Debian/Debianize/InputDebian.hs b/src/Debian/Debianize/InputDebian.hs
--- a/src/Debian/Debianize/InputDebian.hs
+++ b/src/Debian/Debianize/InputDebian.hs
@@ -32,7 +32,7 @@
 import qualified Debian.Debianize.BinaryDebDescription as B (architecture, binaryPriority, multiArch, binarySection, breaks, builtUsing, conflicts, depends, description, essential, package, preDepends, provides, recommends, relations, replaces, suggests)
 import Debian.Debianize.CopyrightDescription (readCopyrightDescription)
 import Debian.Debianize.Prelude (getDirectoryContents', read', readFileMaybe, (.?=))
-import qualified Debian.Debianize.SourceDebDescription as S (binaryPackages, buildConflicts, buildConflictsIndep, buildDepends, buildDependsIndep, dmUploadAllowed, homepage, newSourceDebDescription', priority, rulesRequiresRoot, section, SourceDebDescription, standardsVersion, uploaders, xDescription, vcsFields, VersionControlSpec(VCSArch, VCSBrowser, VCSBzr, VCSCvs, VCSDarcs, VCSGit, VCSHg, VCSMtn, VCSSvn), XField(XField), xFields)
+import qualified Debian.Debianize.SourceDebDescription as S (binaryPackages, buildConflicts, buildConflictsIndep, buildDepends, buildDependsIndep, dmUploadAllowed, homepage, newSourceDebDescription', priority, rulesRequiresRoot, section, SourceDebDescription, standardsVersion, uploaders, sourceDescription, vcsFields, VersionControlSpec(VCSArch, VCSBrowser, VCSBzr, VCSCvs, VCSDarcs, VCSGit, VCSHg, VCSMtn, VCSSvn), XField(XField), xFields)
 import Debian.Orphans ()
 import Debian.Policy (parseMaintainer, parsePackageArchitectures, parseStandardsVersion, parseUploaders, readPriority, readSection, readMultiArch, readSourceFormat, Section(..))
 import Debian.Relation (BinPkgName(..), parseRelations, Relations, SrcPkgName(..))
@@ -113,7 +113,7 @@
       readField (Field ("Vcs-Hg", s)) (desc, unrecognized) = (over S.vcsFields (\ vcsFields -> Set.insert (S.VCSHg (pack s)) vcsFields) desc, unrecognized)
       readField (Field ("Vcs-Mtn", s)) (desc, unrecognized) = (over S.vcsFields (\ vcsFields -> Set.insert (S.VCSMtn (pack s)) vcsFields) desc, unrecognized)
       readField (Field ("Vcs-Svn", s)) (desc, unrecognized) = (over S.vcsFields (\ vcsFields -> Set.insert (S.VCSSvn (pack s)) vcsFields) desc, unrecognized)
-      readField (Field ("X-Description", value)) (desc, unrecognized) = (set S.xDescription (Just (pack value)) desc, unrecognized)
+      readField (Field ("Description", value)) (desc, unrecognized) = (set S.sourceDescription (Just (pack value)) desc, unrecognized)
       readField field@(Field ('X' : fld, value)) (desc, unrecognized) =
           case span (`elem` "BCS") fld of
             (xs, '-' : more) -> (over S.xFields (\ xFields -> Set.insert (S.XField (fromList (map (read' (\ s -> error $ "parseSourceDebDescription: " ++ show s) . (: [])) xs)) (pack more) (pack value)) xFields) desc, unrecognized)
diff --git a/src/Debian/Debianize/Optparse.hs b/src/Debian/Debianize/Optparse.hs
--- a/src/Debian/Debianize/Optparse.hs
+++ b/src/Debian/Debianize/Optparse.hs
@@ -43,7 +43,7 @@
 import System.FilePath(splitFileName, (</>))
 import System.Process (showCommandForUser)
 import Text.Parsec.Rfc2822 (NameAddr(..))
-import Text.PrettyPrint.ANSI.Leijen (linebreak, (<+>), string, indent)
+import Prettyprinter ((<+>), flatAlt, indent, line, pretty)
 import qualified  Debian.Debianize.DebInfo as D
 import qualified Data.Map as Map
 import qualified Data.Set as Set
@@ -582,7 +582,7 @@
     <+> linebreak <+> linebreak
     <+> indent 2 "% cabal-debian  --maintainer 'Maintainer Name <maintainer@email>'"
     <+> linebreak <+> linebreak
-    <+> (string . unlines $ [
+    <+> (pretty . unlines $ [
      "This will read the package's cabal file and any existing debian/changelog file and",
      "deduce what it can about the debianization, then it will create or modify files in",
      "the debian subdirectory.  Note that it will not remove any files in debian, and",
@@ -592,6 +592,7 @@
      "",
      "Arguments: " ++ showCommandForUser "cabal-debian" args
      ])
+  linebreak = flatAlt line mempty
 
 -- FIXME: Separation of parsing of `BehaviorAdjustment' and performing
 -- of corresponding actions is all great, but now it is pretty easy
diff --git a/src/Debian/Debianize/SourceDebDescription.hs b/src/Debian/Debianize/SourceDebDescription.hs
--- a/src/Debian/Debianize/SourceDebDescription.hs
+++ b/src/Debian/Debianize/SourceDebDescription.hs
@@ -19,7 +19,7 @@
     , homepage
     , vcsFields
     , xFields
-    , xDescription
+    , sourceDescription
     , binaryPackages
     , VersionControlSpec(..)
     , XField(..)
@@ -71,7 +71,7 @@
       , _buildConflicts :: Relations
       , _buildDependsIndep :: Relations
       , _buildConflictsIndep :: Relations
-      , _xDescription :: Maybe Text
+      , _sourceDescription :: Maybe Text
       , _binaryPackages :: [BinaryDebDescription]
       -- ^ The binary debs.  This should be a map, but we may need to preserve the order
       } deriving (Eq, Ord, Show, Data, Typeable)
@@ -103,7 +103,7 @@
       , _homepage = Nothing
       , _vcsFields = Set.empty
       , _xFields = Set.empty
-      , _xDescription = Nothing -- Quick hack, I should maybe put this into _xFields
+      , _sourceDescription = Nothing
       , _binaryPackages = [] }
 
 newSourceDebDescription' :: SrcPkgName -> NameAddr -> SourceDebDescription
diff --git a/src/Debian/Policy.hs b/src/Debian/Policy.hs
--- a/src/Debian/Policy.hs
+++ b/src/Debian/Policy.hs
@@ -118,7 +118,7 @@
 -- | With the current state of CDBS, anything above 10 breaks, so
 -- for now we force this to 10.
 getDebhelperCompatLevel :: IO (Maybe Int)
-getDebhelperCompatLevel = return (Just 10)
+getDebhelperCompatLevel = return (Just 13)
 
 data StandardsVersion = StandardsVersion Int Int Int (Maybe Int) deriving (Eq, Ord, Show, Data, Typeable)
 
diff --git a/test-data/alex/output/debian/compat b/test-data/alex/output/debian/compat
deleted file mode 100644
--- a/test-data/alex/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/archive/output/debian/compat b/test-data/archive/output/debian/compat
deleted file mode 100644
--- a/test-data/archive/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/archive/output/debian/control b/test-data/archive/output/debian/control
--- a/test-data/archive/output/debian/control
+++ b/test-data/archive/output/debian/control
@@ -2,9 +2,9 @@
 Priority: optional
 Maintainer: David Fox <dsf@seereason.com>
 Section: haskell
-Build-Depends: debhelper (>= 9)
-               , haskell-devscripts-minimal | haskell-devscripts (>= 0.13)
-               , cdbs
+Build-Depends: debhelper-compat (= 13)
+               , haskell-devscripts-minimal | haskell-devscripts (>= 0.16.42)
+               , dh-sequence-haskell
                , ghc
 	       , ghc-prof
                , libghc-extra-dev
@@ -14,7 +14,7 @@
                , libghc-network-dev
                , libghc-network-prof
 Standards-Version: 3.8.1
-X-Description: Backups of the seereason darcs repositories
+Description: Backups of the seereason darcs repositories
  Install this somewhere other than where the server is running get
  automated backups of the database.
 
diff --git a/test-data/archive/output/debian/rules b/test-data/archive/output/debian/rules
--- a/test-data/archive/output/debian/rules
+++ b/test-data/archive/output/debian/rules
@@ -1,10 +1,4 @@
 #!/usr/bin/make -f
 
-DEB_SETUP_BIN_NAME = cabal
-DEB_CABAL_PACKAGE = seereason-darcs-backups
-DEB_DEFAULT_COMPILER = ghc
-
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/hlibrary.mk
-
-build/seereason-darcs-backups:: build-ghc-stamp
+%:
+	dh $@
diff --git a/test-data/artvaluereport-data/output/debian/compat b/test-data/artvaluereport-data/output/debian/compat
deleted file mode 100644
--- a/test-data/artvaluereport-data/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/artvaluereport2/output/debian/compat b/test-data/artvaluereport2/output/debian/compat
deleted file mode 100644
--- a/test-data/artvaluereport2/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/clckwrks-dot-com/output/debian/compat b/test-data/clckwrks-dot-com/output/debian/compat
deleted file mode 100644
--- a/test-data/clckwrks-dot-com/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/clckwrks-dot-com/output/debian/control b/test-data/clckwrks-dot-com/output/debian/control
--- a/test-data/clckwrks-dot-com/output/debian/control
+++ b/test-data/clckwrks-dot-com/output/debian/control
@@ -2,9 +2,9 @@
 Maintainer: Jeremy Shaw <jeremy@n-heptane.com>
 Priority: optional
 Section: haskell
-Build-Depends: debhelper (>= 9)
-               , haskell-devscripts-minimal | haskell-devscripts (>= 0.13)
-               , cdbs
+Build-Depends: debhelper-compat (= 13)
+               , haskell-devscripts-minimal | haskell-devscripts (>= 0.16.42)
+               , dh-sequence-haskell
                , ghc
                , ghc-prof
                , libghc-clckwrks-dev (>= 0.13)
@@ -37,7 +37,7 @@
                , libghc-web-plugins-prof (<< 0.2)
 Standards-Version: 3.9.6
 Homepage: http://www.clckwrks.com/
-X-Description: clckwrks.com
+Description: clckwrks.com
 
 Package: clckwrks-dot-com-production
 Architecture: any
diff --git a/test-data/clckwrks-dot-com/output/debian/rules b/test-data/clckwrks-dot-com/output/debian/rules
--- a/test-data/clckwrks-dot-com/output/debian/rules
+++ b/test-data/clckwrks-dot-com/output/debian/rules
@@ -1,14 +1,9 @@
 #!/usr/bin/make -f
 
-DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups
-DEB_SETUP_BIN_NAME = cabal
-DEB_CABAL_PACKAGE = clckwrks-dot-com
-DEB_DEFAULT_COMPILER = ghc
-
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/hlibrary.mk
+export DEB_SETUP_GHC_CONFIGURE_ARGS = -fbackups
 
-build/haskell-clckwrks-dot-com-utils:: build-ghc-stamp
+%:
+	dh $@
 
 binary-fixup/clckwrks-dot-com-production::
 	echo -n 'haskell:Depends=' >> debian/clckwrks-dot-com-production.substvars
diff --git a/test-data/creativeprompts/output/debian/compat b/test-data/creativeprompts/output/debian/compat
deleted file mode 100644
--- a/test-data/creativeprompts/output/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-9
diff --git a/test-data/haskell-devscripts/debian/compat b/test-data/haskell-devscripts/debian/compat
deleted file mode 100644
--- a/test-data/haskell-devscripts/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-7
