packages feed

cabal-debian 3.8.3 → 3.9

raw patch · 11 files changed

+158/−68 lines, 11 filesdep ~Cabaldep ~basedep ~debiannew-component:exe:cabal-debian-tests

Dependency ranges changed: Cabal, base, debian

Files

cabal-debian.cabal view
@@ -1,5 +1,5 @@ Name:           cabal-debian-Version:        3.8.3+Version:        3.9 License:        BSD3 License-File:   debian/copyright Author:         David Fox <dsf@seereason.com>@@ -13,14 +13,12 @@   changelog,   debian/Debianize.hs Description:- Tool for creating debianizations of Haskell packages based on the- .cabal file.  If apt-file is installed it will use it to discover- what is the debian package name of a C library.  Basic usage is via- the cabal-debian executable.  A more powerful but still undocumented- programmatic interface is also provided.  Normal usage for this is to- put a script in debian/Debianize.hs (such as the one in this source- package) which is run to create the debianization.-+ This package provides two methods for generating the debianization+ (i.e. the contents of the 'debian' subdirectory) for a cabal package.+ An executable named cabal-debian, and a library API to handle more+ complex packaging issues.  For documentation of the executable run+ @cabal-debian --help@, for documentation of the library API follow+ the link to the @Debian.Debianize@ module below. Flag tests   Description: enable the unit test executable (disabled by default because it has a lot of wacky dependencies.)   Default: False@@ -71,7 +69,6 @@    Debian.Debianize.Input    Debian.Debianize.Options    Debian.Debianize.SubstVars-   Debian.Debianize.Tests    Debian.Debianize.Types    Debian.Debianize.Types.VersionSplits    Debian.Debianize.Utility@@ -89,6 +86,30 @@    cabal-debian,    containers,    data-lens++Executable cabal-debian-tests+ Main-is: src/Debian/Debianize/Tests.hs+ ghc-options: -threaded -Wall -O2+ Build-Depends:+   ansi-wl-pprint,+   base,+   Cabal,+   cabal-debian,+   containers,+   data-lens,+   debian,+   filepath,+   hsemail,+   HUnit,+   mtl,+   parsec >= 3,+   process,+   pureMD5,+   regex-tdfa,+   syb,+   text,+   unix,+   utf8-string  -- Executable cabal-debian-tests --  Main-Is: src/Tests.hs
changelog view
@@ -1,3 +1,16 @@+haskell-cabal-debian (3.9) unstable; urgency=low++  * Clean up documentation+  * Allow more than one utility package name, each of which will+    get copies of the data-files and leftover executables.+  * Make the --debianize option a no-op, the behavior is now the+    default.+  * Update the unit tests and build an executable to run them.+  * Copy debian/changelog to top directory at beginning of build+    so hackage will see it.++ -- David Fox <dsf@seereason.com>  Tue, 05 Nov 2013 11:34:48 -0800+ haskell-cabal-debian (3.8.3) unstable; urgency=low    * Add an ifdef for compatibility with GHC-7.4.1.
debian/Debianize.hs view
@@ -7,16 +7,16 @@ import Debian.Debianize as Atoms import Debian.Changes (ChangeLog(..), ChangeLogEntry(..)) import Debian.Debianize.Details (seereasonDefaultAtoms)-import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel), VersionReq(SLT))+import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel), VersionReq(SLT, GRE)) import Debian.Version (parseDebianVersion) import Prelude hiding (log)+import System.Directory (copyFile)  main :: IO () main =-    do -- The official changelog was moved to the top directory so-       -- that hackage will see it, so copy it before building the-       -- debianization.-       copyFile "changelog" "debian/changelog"+    do -- Copy the changelog into the top directory so that hackage+       -- will see it.+       copyFile "debian/changelog" "changelog"        log <- inputChangeLog (Top ".")        new <- debianization (Top ".") (return . customize . setL changelog (Just log)) seereasonDefaultAtoms        old <- inputDebianization (Top ".")@@ -33,10 +33,13 @@                 setL standards (Just (StandardsVersion 3 9 3 Nothing)) .                 setL sourceFormat (Just Native3) .                 -- modL extraDevDeps (Set.insert (BinPkgName "debian-policy")) .-                setL utilsPackageName (Just (BinPkgName "cabal-debian")) .+                setL utilsPackageNames (Just (singleton (BinPkgName "cabal-debian"))) .+                modL installCabalExec (Map.insertWith union (BinPkgName "cabal-debian-tests") (singleton ("cabal-debian-tests", "/usr/bin"))) .                 modL depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "apt-file") Nothing Nothing))) .                 modL Atoms.depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "debian-policy") Nothing Nothing))) .                 modL Atoms.depends (Map.insertWith union (BinPkgName "libghc-cabal-debian-dev") (singleton (Rel (BinPkgName "debian-policy") Nothing Nothing))) .+                modL Atoms.depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "debhelper") Nothing Nothing))) .+                modL Atoms.depends (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "haskell-devscripts") (Just (GRE (parseDebianVersion ("0.8.19" :: String)))) Nothing))) .                 modL conflicts (Map.insertWith union (BinPkgName "cabal-debian") (singleton (Rel (BinPkgName "haskell-debian-utils") (Just (SLT (parseDebianVersion ("3.59" :: String)))) Nothing))) .                 modL description (Map.insertWith (error "test7") (BinPkgName "cabal-debian")                                         (Text.intercalate "\n"
src/Debian/Debianize.hs view
@@ -58,7 +58,6 @@     , module Debian.Debianize.Interspersed     , module Debian.Debianize.Options     , module Debian.Debianize.SubstVars-    , module Debian.Debianize.Tests     , module Debian.Debianize.Types     , module Debian.Debianize.Utility     , module Debian.Policy@@ -75,7 +74,6 @@ import Debian.Debianize.Interspersed import Debian.Debianize.Options import Debian.Debianize.SubstVars-import Debian.Debianize.Tests import Debian.Debianize.Types import Debian.Debianize.ControlFile hiding (depends, conflicts, maintainer, description, section) import Debian.Debianize.Utility
src/Debian/Debianize/Atoms.hs view
@@ -28,7 +28,7 @@     , backups     , apacheSite     , missingDependencies-    , utilsPackageName+    , utilsPackageNames     , sourcePackageName     , revision     , debVersion@@ -150,7 +150,7 @@                                                   -- from DebRulesFragment values in the atom list.     | DebRulesFragment Text                       -- ^ A Fragment of debian/rules     | Warning Text                                -- ^ A warning to be reported later-    | UtilsPackageName BinPkgName                 -- ^ Name to give the package for left-over data files and executables+    | UtilsPackageNames (Set BinPkgName)          -- ^ Names of the packages that will get left-over data files and executables     | DebChangeLog ChangeLog			  -- ^ The changelog, first entry contains the source package name and version     | DebLogComments [[Text]]			  -- ^ Each element is a comment to be added to the changelog, where the                                                   -- element's text elements are the lines of the comment.@@ -562,18 +562,20 @@             p Source (MissingDependency _) = True             p _ _ = False --- | Override the package name used to hold left over data files and executables-utilsPackageName :: Lens Atoms (Maybe BinPkgName)-utilsPackageName = lens g s+-- | Override the package name used to hold left over data files and executables.+-- Usually only one package is specified, but if more then one are they will each+-- receive the same list of files.+utilsPackageNames :: Lens Atoms (Maybe (Set BinPkgName))+utilsPackageNames = lens g s     where       g atoms = foldAtoms from Nothing atoms           where-            from Source (UtilsPackageName x') (Just x) | x /= x' = error $ "Conflicting compat values:" ++ show (x, x')-            from Source (UtilsPackageName x) _ = Just x-            from _ _ x = x-      s x atoms = modifyAtoms' f (const (maybe Set.empty (singleton . (Source,) . UtilsPackageName) x)) atoms+            from Source (UtilsPackageNames xs') (Just xs) | xs /= xs' = error $ "Conflicting compat values:" ++ show (xs, xs')+            from Source (UtilsPackageNames xs) _ = Just xs+            from _ _ xs = xs+      s xs atoms = modifyAtoms' f (const (maybe Set.empty (singleton . (Source,) . UtilsPackageNames) xs)) atoms           where-            f Source (UtilsPackageName y) = Just y+            f Source (UtilsPackageNames ys) = Just ys             f _ _ = Nothing  -- | Override the debian source package name constructed from the cabal name@@ -1207,7 +1209,7 @@ defaultFlags =     Flags {       verbosity_ = 1-    , debAction_ = Usage+    , debAction_ = Debianize     , dryRun_ = False     , validate_ = False     }
src/Debian/Debianize/Debianize.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleInstances, OverloadedStrings, ScopedTypeVariables, StandaloneDeriving, TupleSections, TypeSynonymInstances, CPP #-}+{-# LANGUAGE FlexibleInstances, OverloadedStrings, ScopedTypeVariables, StandaloneDeriving, TupleSections, TypeSynonymInstances #-} {-# OPTIONS -Wall -fno-warn-name-shadowing -fno-warn-orphans #-}  -- | Generate a package Debianization from Cabal data and command line@@ -73,7 +73,17 @@         Debianize -> debianize (Top ".") return defaultAtoms         Usage -> do           progName <- getProgName-          let info = "Usage: " ++ progName ++ " [FLAGS]\n"+          let info = unlines [ "Typical usage is to cd to the top directory of the package's unpacked source and run: "+                             , ""+                             , "    " ++ progName ++ " --maintainer 'Maintainer Name <maintainer@email>'."+                             , ""+                             , "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"+                             , "these could affect the operation of the debianization in unknown ways.  For this"+                             , "reason I recommend either using a pristine unpacked directory each time, or else"+                             , "using a revision control system to revert the package to a known state before running."+                             , "The following additional options are available:" ]           putStrLn (usageInfo info options)  compileEnvironmentArgs :: Atoms -> IO Atoms
src/Debian/Debianize/Finalize.hs view
@@ -19,7 +19,7 @@     (Atoms, packageDescription, control, binaryArchitectures, rulesFragments, website, serverInfo, link,      backups, executable, sourcePriority, sourceSection, binaryPriorities, binarySections, description,      install, installTo, installData, installCabalExecTo, noProfilingLibrary, noDocumentationLibrary,-     utilsPackageName, extraDevDeps, installData, installCabalExec, file, apacheSite, installDir, buildDir,+     utilsPackageNames, extraDevDeps, installData, installCabalExec, file, apacheSite, installDir, buildDir,      dataDir, intermediateFiles) import Debian.Debianize.ControlFile as Debian (SourceDebDescription(..), BinaryDebDescription(..), PackageRelations(..),                                                newBinaryDebDescription, modifyBinaryDeb,@@ -148,10 +148,14 @@     case (Set.difference availableData installedData, Set.difference availableExec installedExec) of       (datas, execs) | Set.null datas && Set.null execs -> deb       (datas, execs) ->-          let p = fromMaybe (debianName deb Utilities (Cabal.package pkgDesc)) (getL utilsPackageName deb)-              deb' = setL packageDescription (Just pkgDesc) . makeUtilsAtoms p datas execs $ deb in-          modL control (\ y -> modifyBinaryDeb p (f deb' p (if Set.null execs then All else Any)) y) deb'+          let ps = fromMaybe (singleton (debianName deb Utilities (Cabal.package pkgDesc))) (getL utilsPackageNames deb)+              deb' = Set.fold (h datas execs) deb ps in+              -- deb' = setL packageDescription (Just pkgDesc) (makeUtilsAtoms p datas execs deb) in+          Set.fold (g execs) deb' ps+          -- modL control (\ y -> modifyBinaryDeb p (f deb' p (if Set.null execs then All else Any)) y) deb'     where+      h datas execs p deb' = setL packageDescription (Just pkgDesc) (makeUtilsAtoms p datas execs deb')+      g execs p deb' = modL control (\ y -> modifyBinaryDeb p (f deb' p (if Set.null execs then All else Any)) y) deb'       f _ _ _ (Just bin) = bin       f deb' p arch Nothing =           let bin = newBinaryDebDescription p arch in
src/Debian/Debianize/Options.hs view
@@ -37,60 +37,78 @@ options :: [OptDescr (Atoms -> Atoms)] options =     [ Option "v" ["verbose"] (ReqArg (\ s atoms -> setL verbosity (read' (\ s' -> error $ "verbose: " ++ show s') s) atoms) "n")-             "Change build verbosity",+             "Change the amount of progress messages generated",       Option "n" ["dry-run", "compare"] (NoArg (\ atoms -> setL dryRun True atoms))              "Just compare the existing debianization to the one we would generate.",       Option "h?" ["help"] (NoArg (\ atoms -> setL debAction Usage atoms))              "Show this help text",-      Option "" ["debianize"] (NoArg (\ atoms -> setL debAction Debianize atoms))-             "Generate a new debianization, replacing any existing one.  One of --debianize or --substvar is required.",-      Option "" ["substvar"] (ReqArg (\ name atoms -> setL debAction (SubstVar (read' (\ s -> error $ "substvar: " ++ show s) name)) atoms) "Doc, Prof, or Dev")-             (unlines ["Write out the list of dependencies required for the dev, prof or doc package depending",-                       "on the argument.  This value can be added to the appropriate substvars file."]),       Option "" ["executable"] (ReqArg (\ path x -> executableOption path (\ bin e -> doExecutable bin e x)) "SOURCEPATH or SOURCEPATH:DESTDIR")-             "Create individual eponymous executable packages for these executables.  Other executables and data files are gathered into a single utils package.",+             (unlines [ "Create an individual binary package to hold this executable.  Other executables "+                      , " and data files are gathered into a single utils package named 'haskell-packagename-utils'."]),       Option "" ["ghc-version"] (ReqArg (\ ver x -> setL compilerVersion (Just (last (map fst (readP_to_S parseVersion ver)))) x) "VERSION")-             "Version of GHC in build environment",+             (unlines [ "Version of GHC in build environment.  Without this option it is assumed that"+                      , "the version of GHC in the build environment is the same as the one in the"+                      , "environment in which cabal-debian is running. (the usual case.)  The GHC"+                      , "version is used to determine which packages are bundled with GHC - if a"+                      , "package is bundled with GHC it is not necessary to add a build dependency for"+                      , "that package to the debian/control file."]),       Option "" ["disable-haddock"] (NoArg (setL noDocumentationLibrary True))-             "Don't generate API documentation.  Use this if build is crashing due to a haddock error.",+             (unlines [ "Don't generate API documentation packages, usually named"+                      , "libghc-packagename-doc.  Use this if your build is crashing due to a"+                      , "haddock bug."]),       Option "" ["missing-dependency"] (ReqArg (\ name atoms -> modL missingDependencies (insert (BinPkgName name)) atoms) "DEB")-             "Mark a package missing, do not add it to any dependency lists in the debianization.",+             (unlines [ "This is the counterpart to --disable-haddock.  It prevents a package"+                      , "from being added to the build dependencies.  This is necessary, for example,"+                      , "when a dependency package was built with the --disable-haddock option, because"+                      , "normally cabal-debian assumes that the -doc package exists and adds it as a"+                      , "build dependency."]),       Option "" ["source-package-name"] (ReqArg (\ name x -> setL sourcePackageName (Just (SrcPkgName name)) x) "NAME")-             "Use this name for the debian source package.  Default is haskell-<cabalname>, where the cabal package name is downcased.",+             (unlines [ "Use this name for the debian source package, the name in the Source field at the top of the"+                      , "debian control file, and also at the very beginning of the debian/changelog file.  By default"+                      , "this is haskell-<cabalname>, where the cabal package name is downcased."]),       Option "" ["disable-library-profiling"] (NoArg (setL noProfilingLibrary True))-             "Don't generate profiling libraries",-      Option "f" ["flags"] (ReqArg (\ fs atoms -> modL cabalFlagAssignments (union (fromList (flagList fs))) atoms) "FLAGS")-             "Set given flags in Cabal conditionals",+             (unlines [ "Don't generate profiling (-prof) library packages.  This has been used in one case"+                      , "where the package code triggered a compiler bug."]),       Option "" ["maintainer"] (ReqArg (\ maint x -> setL maintainer (either (error ("Invalid maintainer string: " ++ show maint)) Just (parseMaintainer maint)) x) "Maintainer Name <email addr>")-             "Override the Maintainer name and email in $DEBEMAIL/$EMAIL/$DEBFULLNAME/$FULLNAME",+             (unlines [ "Override the Maintainer name and email given in $DEBEMAIL or $EMAIL or $DEBFULLNAME or $FULLNAME"]),       Option "" ["build-dep"]                  (ReqArg (\ name atoms ->                               modL buildDeps                                        (case parseRelations name of                                           Right rss -> Set.insert rss                                           Left err -> error ("cabal-debian option --build-dep " ++ show name ++ ": " ++ show err)) atoms) "Debian package relations")-                 "Specify a package to add to the build dependency list for this source package, e.g. '--build-dep libglib2.0-dev'.",+                 (unlines [ "Add a dependency relation to the Build-Depends: field for this source package, e.g."+                          , ""+                          , "     --build-dep libglib2.0-dev"+                          , "     --build-dep 'libglib2.0-dev >= 2.2'" ]),       Option "" ["build-dep-indep"]                  (ReqArg (\ name atoms ->                               modL buildDepsIndep                                        (case parseRelations name of                                           Right rss -> Set.insert rss                                           Left err -> error ("cabal-debian option --build-dep-indep " ++ show name ++ ": " ++ show err)) atoms) "Debian binary package name")-                 "Specify a package to add to the architecture independent build dependency list for this source package, e.g. '--build-dep-indep perl'.",+                 (unlines [ "Similar to --build-dep, but the dependencies are added to Build-Depends-Indep, e.g.:"+                          , ""+                          , "    --build-dep-indep perl" ]),       Option "" ["dev-dep"] (ReqArg (\ name atoms -> modL extraDevDeps (Set.insert (Rel (BinPkgName name) Nothing Nothing)) atoms) "Debian binary package name")-             "Specify a package to add to the Depends: list of the -dev package, e.g. '--dev-dep libncurses5-dev'.  It might be good if this implied --build-dep.",+             (unlines [ "Add an entry to the Depends: field of the -dev package, e.g."+                      , "'--dev-dep libncurses5-dev'.  It might be good if this implied --build-dep."]),       Option "" ["depends"] (ReqArg (\ arg atoms -> foldr (\ (p, r) atoms' -> modL depends (Map.insertWith union p (singleton r)) atoms') atoms (parseDeps arg)) "deb:deb,deb:deb,...")-             "Generalized --dev-dep - specify pairs A:B of debian binary package names, each A gets a Depends: B",+             (unlines [ "Generalized --dev-dep - specify pairs A:B of debian binary package names, each"+                      , "A gets a Depends: B.  Note that B can have debian style version relations"]),       Option "" ["conflicts"] (ReqArg (\ arg atoms -> foldr (\ (p, r) atoms' -> modL conflicts (Map.insertWith union p (singleton r)) atoms') atoms (parseDeps arg)) "deb:deb,deb:deb,...")-             "Specify pairs A:B of debian binary package names, each A gets a Conflicts: B.  Note that B can have debian style version relations",+             "Like --depends, modifies the Conflicts field.",       Option "" ["replaces"] (ReqArg (\ arg atoms -> foldr (\ (p, r) atoms' -> modL replaces (Map.insertWith union p (singleton r)) atoms') atoms (parseDeps arg)) "deb:deb,deb:deb,...")-             "Specify pairs A:B of debian binary package names, each A gets a Replaces: B.  Note that B can have debian style version relations",+             "Like --depends, modifies the Replaces field.",       Option "" ["provides"] (ReqArg (\ arg atoms -> foldr (\ (p, r) atoms' -> modL provides (Map.insertWith union p (singleton r)) atoms') atoms (parseDeps arg)) "deb:deb,deb:deb,...")-             "Specify pairs A:B of debian binary package names, each A gets a Provides: B.  Note that B can have debian style version relations",+             "Like --depends, modifies the Provides field.",       Option "" ["map-dep"] (ReqArg (\ pair atoms -> case break (== '=') pair of                                                        (cab, (_ : deb)) -> modL extraLibMap (Map.insertWith Set.union cab (singleton (rels deb))) atoms                                                        (_, "") -> error "usage: --map-dep CABALNAME=RELATIONS") "CABALNAME=RELATIONS")-             "Specify a mapping from the name appearing in the Extra-Library field of the cabal file to a debian binary package name, e.g. --dep-map cryptopp=libcrypto-dev",+             (unlines [ "Specify what debian package name corresponds with a name that appears in"+                      , "the Extra-Library field of a cabal file, e.g. --map-dep cryptopp=libcrypto-dev."+                      , "I think this information is present somewhere in the packaging system, but"+                      , "I'm not sure of the details."]),       Option "" ["deb-version"] (ReqArg (\ version atoms -> setL debVersion (Just (parseDebianVersion version)) atoms) "VERSION")              "Specify the version number for the debian package.  This will pin the version and should be considered dangerous.",       Option "" ["revision"] (ReqArg (setL revision . Just) "REVISION")@@ -105,11 +123,29 @@                                                      _ -> error "usage: --exec-map EXECNAME=RELATIONS") "EXECNAME=RELATIONS")              "Specify a mapping from the name appearing in the Build-Tool field of the cabal file to a debian binary package name, e.g. --exec-map trhsx=haskell-hsx-utils",       Option "" ["omit-lt-deps"] (NoArg (setL omitLTDeps True))-             "Don't generate the << dependency when we see a cabal equals dependency.",+             (unlines [ "Remove all less-than dependencies from the generated control file.  Less-than"+                      , "dependencies are less useful and more troublesome for debian packages than cabal,"+                      , "because you can't install multiple versions of a given debian package.  For more"+                      , "google 'cabal hell'."]),       Option "" ["quilt"] (NoArg (setL sourceFormat (Just Quilt3)))              "The package has an upstream tarball, write '3.0 (quilt)' into source/format.",       Option "" ["builddir"] (ReqArg (\ s atoms -> setL buildDir (Just (s </> "build")) atoms) "PATH")-             "Subdirectory where cabal does its build, dist/build by default, dist-ghc when run by haskell-devscripts.  The build subdirectory is added to match the behavior of the --builddir option in the Setup script."+             (unlines [ "Subdirectory where cabal does its build, dist/build by default, dist-ghc when"+                      , "run by haskell-devscripts.  The build subdirectory is added to match the"+                      , "behavior of the --builddir option in the Setup script."]),++      Option "f" ["flags"] (ReqArg (\ fs atoms -> modL cabalFlagAssignments (union (fromList (flagList fs))) atoms) "FLAGS")+             (unlines [ "Flags to pass to the finalizePackageDescription function in"+                      , "Distribution.PackageDescription.Configuration when loading the cabal file."]),++      Option "" ["debianize"] (NoArg (\ atoms -> setL debAction Debianize atoms))+             "Deprecated - formerly used to get what is now the normal benavior.",+      Option "" ["substvar"] (ReqArg (\ name atoms -> setL debAction (SubstVar (read' (\ s -> error $ "substvar: " ++ show s) name)) atoms) "Doc, Prof, or Dev")+             (unlines [ "With this option no debianization is generated.  Instead, the list"+                      , "of dependencies required for the dev, prof or doc package (depending"+                      , "on the argument) is printed to standard output.  These can be added"+                      , "to the appropriate substvars file.  (This is an option whose use case"+                      , "is lost in the mists of time.)"])     ]  anyrel :: BinPkgName -> Relation
src/Debian/Debianize/SubstVars.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP, ScopedTypeVariables, TupleSections, TypeSynonymInstances #-}+{-# LANGUAGE ScopedTypeVariables, TupleSections, TypeSynonymInstances #-} {-# OPTIONS -Wall -fno-warn-name-shadowing #-}  -- | Support for generating Debianization from Cabal data.
src/Debian/Debianize/Tests.hs view
@@ -1,7 +1,8 @@ {-# LANGUAGE OverloadedStrings, RankNTypes, ScopedTypeVariables, StandaloneDeriving #-} {-# OPTIONS_GHC -Wall -fno-warn-orphans #-}-module Debian.Debianize.Tests+module Main     ( tests+    , main     ) where  import Data.Algorithm.Diff.Context (contextDiff)@@ -20,7 +21,7 @@ import Debian.Debianize.Debianize (debianization) import Debian.Debianize.Atoms as Atoms     (Atoms, rulesHead, compat, sourceFormat, changelog, control, missingDependencies, revision,-     binaryArchitectures, copyright, debVersion, execMap, buildDeps, utilsPackageName, description,+     binaryArchitectures, copyright, debVersion, execMap, buildDeps, utilsPackageNames, description,      depends, installData, epochMap {-, sourcePackageName, install, buildDepsIndep-}) import Debian.Debianize.ControlFile as Deb (SourceDebDescription(..), BinaryDebDescription(..), PackageRelations(..), VersionControlSpec(..)) import Debian.Debianize.Dependencies (getRulesHead)@@ -341,7 +342,7 @@                            modL binaryArchitectures (Map.insert (BinPkgName "creativeprompts-data") All) .                            modL binaryArchitectures (Map.insert (BinPkgName "creativeprompts-development") All) .                            modL binaryArchitectures (Map.insert (BinPkgName "creativeprompts-production") All) .-                           setL utilsPackageName (Just (BinPkgName "creativeprompts-data")) .+                           setL utilsPackageNames (Just (singleton (BinPkgName "creativeprompts-data"))) .                            modL Atoms.description (Map.insertWith (error "test5") (BinPkgName "creativeprompts-data")                                                     (T.intercalate "\n" [ "creativeprompts.com data files"                                                                , "  Static data files for creativeprompts.com"])) .@@ -530,3 +531,7 @@                                 , "    files that were supposed to be installed into packages."                                 , ""                                 , " -- David Fox <dsf@seereason.com>  Thu, 20 Dec 2012 06:49:25 -0800" ]))++main :: IO ()+main = runTestTT tests >>= putStrLn . show+
src/Debian/Orphans.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE CPP, DeriveDataTypeable, FlexibleInstances, StandaloneDeriving #-}+{-# LANGUAGE DeriveDataTypeable, FlexibleInstances, StandaloneDeriving #-} {-# OPTIONS_GHC -Wall -fno-warn-orphans #-} module Debian.Orphans where @@ -114,9 +114,6 @@ instance Pretty License where     pretty (GPL _) = text "GPL"     pretty (LGPL _) = text "LGPL"-#if MIN_VERSION_Cabal(1,16,0)-    pretty (Apache _) = text "Apache"-#endif     pretty BSD3 = text "BSD"     pretty BSD4 = text "BSD-like"     pretty PublicDomain = text "Public Domain"@@ -124,6 +121,7 @@     pretty OtherLicense = text "Non-distributable"     pretty MIT = text "MIT"     pretty (UnknownLicense _) = text "Unknown"+    pretty x = text (show x)  deriving instance Data NameAddr deriving instance Typeable NameAddr