cabal-debian 4.31.9 → 4.32
raw patch · 9 files changed
+148/−104 lines, 9 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Debian.Debianize.Bundled: hcVersion :: FilePath -> CompilerFlavor -> Maybe Version
- Debian.Debianize.Bundled: aptCacheProvides :: FilePath -> String -> [(DebianVersion, [BinPkgName])]
+ Debian.Debianize.Bundled: aptCacheProvides :: BinPkgName -> FilePath -> [PackageIdentifier]
- Debian.Debianize.Bundled: aptCacheShowPkg :: FilePath -> String -> Either SomeException String
+ Debian.Debianize.Bundled: aptCacheShowPkg :: FilePath -> BinPkgName -> Either SomeException String
- Debian.Debianize.Bundled: aptVersions :: FilePath -> String -> [DebianVersion]
+ Debian.Debianize.Bundled: aptVersions :: FilePath -> BinPkgName -> [DebianVersion]
- Debian.Debianize.Bundled: builtIn :: Map PackageName VersionSplits -> CompilerFlavor -> FilePath -> PackageName -> Maybe Version
+ Debian.Debianize.Bundled: builtIn :: CompilerFlavor -> FilePath -> [PackageIdentifier]
Files
- Tests.hs +14/−9
- cabal-debian.cabal +2/−7
- debian/changelog +8/−0
- debian/control +3/−3
- src/Debian/Debianize/BuildDependencies.hs +20/−10
- src/Debian/Debianize/Bundled.hs +93/−70
- test-data/artvaluereport-data/output/debian/control +3/−3
- test-data/artvaluereport2/output/debian/control +2/−2
- test-data/creativeprompts/output/debian/control +3/−0
Tests.hs view
@@ -20,7 +20,7 @@ import Data.Text as Text (intercalate, split, Text, unlines, unpack) import Data.Version (Version(Version)) import Debian.Changes (ChangeLog(..), ChangeLogEntry(..), parseEntry)-import Debian.Debianize.BasicInfo (compilerFlavor, Flags)+import Debian.Debianize.BasicInfo (compilerFlavor, Flags, verbosity) import qualified Debian.Debianize.BinaryDebDescription as B import Debian.Debianize.CabalInfo as A import Debian.Debianize.CopyrightDescription@@ -406,7 +406,8 @@ where customize :: Maybe ChangeLog -> CabalT IO () customize log =- do (debInfo . D.changelog) .= log+ do (debInfo . D.flags . verbosity) .= 1+ (debInfo . D.changelog) .= log liftCabal tight fixRules doBackups (BinPkgName "clckwrks-dot-com-backups") "clckwrks-dot-com-backups"@@ -512,7 +513,8 @@ assertEmptyDiff label diff) where customize old level standards =- do (A.debInfo . D.utilsPackageNameBase) .= Just "creativeprompts-data"+ do (debInfo . D.flags . verbosity) .= 1+ (A.debInfo . D.utilsPackageNameBase) .= Just "creativeprompts-data" newDebianization' level standards (debInfo . D.changelog) .= (view D.changelog old) doWebsite (BinPkgName "creativeprompts-production") (theSite (BinPkgName "creativeprompts-production"))@@ -593,15 +595,15 @@ test6 label = TestLabel label $ TestCase (do dist <- findBuildDir- result <- readProcessWithExitCode "runhaskell" ["--ghc-arg=-package-db=" ++ dist ++ "/package.conf.inplace", "test-data/artvaluereport2/input/debian/Debianize.hs", "--dry-run"] ""- assertEqual label (ExitSuccess, "", "") result)+ (code, out, _err) <- readProcessWithExitCode "runhaskell" ["--ghc-arg=-package-db=" ++ dist ++ "/package.conf.inplace", "test-data/artvaluereport2/input/debian/Debianize.hs", "--dry-run", "--verbose"] ""+ assertEqual label (ExitSuccess, "") (code, out)) test7 :: String -> Test test7 label = TestLabel label $ TestCase (do dist <- findBuildDir- result <- readProcessWithExitCode "runhaskell" ["--ghc-arg=-package-db=" ++ dist ++ "/package.conf.inplace", "debian/Debianize.hs", "--dry-run", "--native"] ""- assertEqual label (ExitSuccess, "Ignored debianization file: debian/cabal-debian.1\nIgnored debianization file: debian/cabal-debian.manpages\nDebianization (dry run):\n No changes\n\n", "") result+ (code, out, _err) <- readProcessWithExitCode "runhaskell" ["--ghc-arg=-package-db=" ++ dist ++ "/package.conf.inplace", "debian/Debianize.hs", "--dry-run", "--native", "--verbose"] ""+ assertEqual label (ExitSuccess, "Ignored debianization file: debian/cabal-debian.1\nIgnored debianization file: debian/cabal-debian.manpages\nDebianization (dry run):\n No changes\n\n") (code, out) {- assertBool label (elem new [(ExitSuccess, "Ignored debianization file: debian/cabal-debian.1\nIgnored debianization file: debian/cabal-debian.manpages\nDebianization (dry run):\n No changes\n\n", ""), (ExitSuccess, "Ignored debianization file: debian/cabal-debian.manpages\nIgnored debianization file: debian/cabal-debian.1\nDebianization (dry run):\n No changes\n\n", "")]) -})@@ -620,7 +622,8 @@ where customize Nothing = error "Missing changelog" customize (Just log) =- do (debInfo . D.control . S.buildDepends) %= (++ [[Rel (BinPkgName "haskell-hsx-utils") Nothing Nothing]])+ do (debInfo . D.flags . verbosity) .= 1+ (debInfo . D.control . S.buildDepends) %= (++ [[Rel (BinPkgName "haskell-hsx-utils") Nothing Nothing]]) (debInfo . D.control . S.homepage) .= Just "http://artvaluereportonline.com" (debInfo . D.sourceFormat) .= Native3 (debInfo . D.changelog) .= Just log@@ -654,6 +657,7 @@ , "AlexWrapper-posn" , "AlexWrapper-posn-bytestring" , "AlexWrapper-strict-bytestring"]+ (debInfo . D.flags . verbosity) .= 1 (debInfo . D.control . S.homepage) .= Just "http://www.haskell.org/alex/" (debInfo . D.sourceFormat) .= Native3 (debInfo . D.debVersion) .= Just (parseDebianVersion'("3.0.2-1~hackage1" :: String))@@ -676,7 +680,8 @@ where customize :: CabalT IO () customize =- do (A.debInfo . D.sourceFormat) .= Native3+ 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.control . S.standardsVersion) .= Just (StandardsVersion 3 8 1 Nothing)
cabal-debian.cabal view
@@ -1,5 +1,5 @@ Name: cabal-debian-Version: 4.31.9+Version: 4.32 Copyright: Copyright (c) 2007-2014, David Fox, Jeremy Shaw License: BSD3 License-File: LICENSE@@ -144,10 +144,7 @@ test-data/artvaluereport2/output/debian/artvaluereport2-backups.install test-data/artvaluereport2/output/debian/copyright test-data/artvaluereport2/output/debian/source/format--Flag tests- Description: enable the unit test executable (disabled by default because it has a lot of wacky dependencies.)- Default: True+tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 7.11.* flag pretty-112 Description: prettyclass was merged into pretty-1.1.2@@ -249,8 +246,6 @@ Test-Suite cabal-debian-tests Default-Language: Haskell2010- if !flag(tests)- Buildable: False Type: exitcode-stdio-1.0 Hs-Source-Dirs: . Main-is: Tests.hs
debian/changelog view
@@ -1,3 +1,11 @@+haskell-cabal-debian (4.32) unstable; urgency=low++ * Compute bundled dependencies by looking for library .conf files+ included in the debian package, rather than by looking at the+ deb's "Provides" attribute. Some ghc debs do not have Provides.++ -- David Fox <dsf@seereason.com> Mon, 18 Jan 2016 05:49:55 -0800+ haskell-cabal-debian (4.31.9) unstable; urgency=low * Fix official haskell packages repository URI
debian/control view
@@ -7,9 +7,9 @@ cdbs, ghc, ghc-prof,- libghc-cabal-dev (>= 1.16),- libghc-cabal-dev (>= 1.18),- libghc-cabal-prof (>= 1.18),+ libghc-cabal-dev (>= 1.16) | ghc,+ libghc-cabal-dev (>= 1.18) | ghc,+ libghc-cabal-prof (>= 1.18) | ghc-prof, libghc-diff-dev (>= 0.3.1), libghc-diff-prof (>= 0.3.1), libghc-hunit-dev,
src/Debian/Debianize/BuildDependencies.hs view
@@ -13,11 +13,11 @@ import Data.Function (on) import Data.List as List (filter, groupBy, map, minimumBy, nub, sortBy) import Data.Map as Map (lookup, Map)-import Data.Maybe (catMaybes, fromMaybe, isJust, isNothing)+import Data.Maybe (catMaybes, fromMaybe, isJust, isNothing, listToMaybe) import Data.Set as Set (empty, fold, fromList, map, member, Set, singleton, toList, union) import Data.Version (showVersion, Version)-import Debian.Debianize.BasicInfo (buildEnv, compilerFlavor, EnvSet(dependOS))-import Debian.Debianize.Bundled (builtIn)+import Debian.Debianize.BasicInfo (buildEnv, compilerFlavor, EnvSet(dependOS), verbosity)+import Debian.Debianize.Bundled (builtIn, hcVersion) import qualified Debian.Debianize.DebInfo as D import Debian.Debianize.DebianName (mkPkgName, mkPkgName') import Debian.Debianize.Monad as Monad (CabalInfo, CabalT)@@ -30,11 +30,13 @@ import Debian.Relation (BinPkgName(..), checkVersionReq, Relation(..), Relations) import qualified Debian.Relation as D (BinPkgName(BinPkgName), Relation(..), Relations, VersionReq(EEQ, GRE, LTE, SGR, SLT)) import Debian.Version (DebianVersion, parseDebianVersion')+import Debug.Trace (trace) import Distribution.Compiler (CompilerFlavor(..))-import Distribution.Package (Dependency(..), PackageName(PackageName))+import Distribution.Package (Dependency(..), PackageIdentifier(pkgName, pkgVersion), PackageName(PackageName)) import Distribution.PackageDescription (PackageDescription) import Distribution.PackageDescription as Cabal (BuildInfo(..), BuildInfo(buildTools, extraLibs, pkgconfigDepends), Library(..), Executable(..), TestSuite(..)) import qualified Distribution.PackageDescription as Cabal (PackageDescription(library, executables, testSuites))+import Distribution.Text (display) import Distribution.Version (anyVersion, asVersionIntervals, earlierVersion, foldVersionRange', fromVersionIntervals, intersectVersionRanges, isNoVersion, laterVersion, orEarlierVersion, orLaterVersion, toVersionIntervals, unionVersionRanges, VersionRange, withinVersion) import Distribution.Version.Invert (invertVersionRange) import Prelude hiding (init, log, map, unlines, unlines, writeFile)@@ -330,12 +332,20 @@ doRel :: Monad m => D.Relation -> CabalT m [D.Relation] doRel rel@(D.Rel dname req _) = do -- gver <- use ghcVersion- splits <- use A.debianNameMap root <- use (A.debInfo . D.flags . buildEnv) >>= return . dependOS -- Look at what version of the package is provided by the compiler. atoms <- get -- What version of this package (if any) does the compiler provide?- let pver = maybe Nothing (Just . debianVersion'' atoms name) (builtIn splits hc root name)+ let Just hcv = hcVersion root hc+ relInfo = builtIn hc root+ pver = listToMaybe $ fmap (debianVersion'' atoms) (filter ((== name) . pkgName) relInfo)+ v = view (A.debInfo . D.flags . verbosity) atoms+ case (v > 0, filter ((== name) . pkgName) relInfo) of+ (True, [i]) ->+ trace (" " ++ show hc ++ "-" ++ show (showVersion hcv) ++ " in " ++ root ++ " provides " ++ display (pkgName i) ++ "-" ++ display (pkgVersion i)) (return ())+ (True, _) ->+ trace (" " ++ show hc ++ "-" ++ show (showVersion hcv) ++ " in " ++ root ++ " does not provide " ++ display name) (return ())+ _ -> return () -- The name this library would have if it was in the compiler conflicts list. let naiveDebianName = mkPkgName hc name typ -- The compiler should appear in the build dependency@@ -368,7 +378,7 @@ conflictsWithHC _ = True {--doBundled :: MonadIO m =>+doBundled :: Monad m => B.PackageType -- Documentation, Profiling, Development... -> PackageName -- Cabal package name -> [D.Relation] -- Original set of debian dependencies@@ -376,7 +386,7 @@ doBundled hc typ name rels = concat <$> mapM doRel rels where- doRel :: MonadIO m => D.Relation -> CabalT m [D.Relation]+ doRel :: Monad m => D.Relation -> CabalT m [D.Relation] doRel rel@(D.Rel dname req _) = do hc <- use -}@@ -387,8 +397,8 @@ do atoms <- get return $ parseDebianVersion' (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v) -debianVersion'' :: CabalInfo -> PackageName -> Version -> DebianVersion-debianVersion'' atoms name v = parseDebianVersion' (maybe "" (\ n -> show n ++ ":") (Map.lookup name (view A.epochMap atoms)) ++ showVersion v)+debianVersion'' :: CabalInfo -> PackageIdentifier -> DebianVersion+debianVersion'' atoms i = parseDebianVersion' (maybe "" (\ n -> show n ++ ":") (Map.lookup (pkgName i) (view A.epochMap atoms)) ++ showVersion (pkgVersion i)) data Rels a = And {unAnd :: [Rels a]} | Or {unOr :: [Rels a]} | Rel' {unRel :: a} deriving Show
src/Debian/Debianize/Bundled.hs view
@@ -15,96 +15,107 @@ , aptCacheDepends , aptCacheConflicts , aptVersions+ , hcVersion ) where -import Control.DeepSeq (force)+import Control.Applicative ((<$>))+import Control.DeepSeq (force, NFData) import Control.Exception (SomeException, try)+import Control.Monad.Catch (MonadMask)+import Control.Monad.Trans (MonadIO) import Data.Char (toLower)-import Data.Function (on) import Data.Function.Memoize (memoize2, memoize3)-import Data.List (isPrefixOf, sortBy)-import Data.Map as Map (Map)-import Data.Maybe (listToMaybe, mapMaybe)-import Data.Version (parseVersion, Version(..))-import Debian.Debianize.VersionSplits (cabalFromDebian', DebBase(DebBase), VersionSplits)+import Data.List (groupBy, isPrefixOf, isSuffixOf)+import Data.Maybe (catMaybes, listToMaybe, mapMaybe)+import Data.Version (parseVersion, Version) import Debian.GHC () import Debian.Relation (BinPkgName(..)) import Debian.Relation.ByteString () import Debian.Version (DebianVersion, parseDebianVersion', prettyDebianVersion)+import Debug.Trace (trace) import Distribution.Package (PackageIdentifier(..), PackageName(..)) import Distribution.Simple.Compiler (CompilerFlavor(..)) import System.IO.Unsafe (unsafePerformIO)-import System.Process (readProcess)+import System.Process (readProcess, showCommandForUser) import System.Unix.Chroot (useEnv) import Text.ParserCombinators.ReadP (readP_to_S) import Text.Regex.TDFA ((=~)) -- | Find out what version, if any, of a cabal library is built into--- the newest version of haskell compiler hc in environment root. For--- GHC this is done by looking at what virtual packages debian package--- provides. I have modified the ghcjs packaging to generate the--- required virtual packages in the Provides line. For other--- compilers it maybe be unimplemented.-builtIn :: Map PackageName VersionSplits -> CompilerFlavor -> FilePath -> PackageName -> Maybe Version-builtIn splits hc root lib = do- f $ builtIn' splits hc root- where- f :: (DebianVersion, [PackageIdentifier]) -> Maybe Version- f (hcv, ids) = case map pkgVersion (filter (\ i -> pkgName i == lib) ids) of- [] -> Nothing- [v] -> Just v- vs -> error $ show hc ++ "-" ++ show hcv ++ " in " ++ show root ++ " provides multiple versions of " ++ show lib ++ ": " ++ show vs+-- the newest version of haskell compiler hc in environment root.+-- This is done by looking for .conf files beneath a package.conf.d+-- directory and parsing the name. (Probably better to actually read+-- the .conf file.)+builtIn :: CompilerFlavor -> FilePath -> [PackageIdentifier]+builtIn hc root =+ let Just hcname = (hcExecutablePath root hc >>= hcBinPkgName root) in+ aptCacheProvides hcname root --- | Ok, lets see if we can infer the built in packages from the--- Provides field returned by apt-cache.-builtIn' :: Map PackageName VersionSplits -> CompilerFlavor -> FilePath -> (DebianVersion, [PackageIdentifier])-builtIn' splits hc root = do- -- Find out what library versions are provided by the latest version- -- of the compiler.- case aptCacheProvides root hcname of- [] -> error $ "No versions of " ++ show hc ++ " (" ++ show hcname ++ ") in " ++ show root- ((v, pids) : _) -> (v, mapMaybe (parsePackageID . unBinPkgName) pids)- where- BinPkgName hcname = BinPkgName (map toLower (show hc))- -- The virtual package id, which appears in the Provides- -- line for the compiler package, is generated by the- -- function package_id_to_virtual_package in Dh_Haskell.sh.- -- It consists of the library's debian package name and the- -- first five characters of the checksum.- -- parsePID "libghc-unix-dev-2.7.0.1-2a456" -> Just (PackageIdentifier "unix" (Version [2,7,0,1] []))- parsePackageID :: String -> Maybe PackageIdentifier- parsePackageID s =- case s =~ ("lib" ++ hcname ++ "-(.*)-dev-([0-9.]*)-.....$") :: (String, String, String, [String]) of- (_, _, _, [base, vs]) -> case listToMaybe (map fst $ filter ((== "") . snd) $ readP_to_S parseVersion $ vs) of- Just v -> Just (cabalFromDebian' splits (DebBase base) v)- Nothing -> Nothing- _ -> Nothing+parseVersion' :: String -> Maybe Version+parseVersion' = listToMaybe . map fst . filter ((== "") . snd) . readP_to_S parseVersion -aptCacheShowPkg :: FilePath -> String -> Either SomeException String-aptCacheShowPkg =- memoize2 (\ root hcname -> unsafePerformIO (try (chroot root (readProcess "apt-cache" ["showpkg", hcname] ""))))- where- chroot "/" = id- chroot root = useEnv root (return . force)+-- | Convert CompilerFlavor to an executable name in a way that works+-- for at least the cases we are interested in. This might need to be+-- fudged or replaced as more cases become interesting.+hcExecutable :: CompilerFlavor -> String+hcExecutable = map toLower . show -aptCacheProvides :: FilePath -> String -> [(DebianVersion, [BinPkgName])]-aptCacheProvides root hcname =- let lns = lines . either (\ (e :: SomeException) -> error $ "builtIn: " ++ show e) id $ aptCacheShowPkg root hcname- hcs = map words $ takeBetween (isPrefixOf "Provides:") (isPrefixOf "Reverse Provides:") lns- hcs' = reverse . sortBy (compare `on` fst) . map doHCVersion $ hcs in- hcs'- where- doHCVersion :: [String] -> (DebianVersion, [BinPkgName])- doHCVersion (versionString : "-" : deps) = (parseDebianVersion' versionString, map BinPkgName deps)- doHCVersion x = error $ "Unexpected output from apt-cache: " ++ show x+-- | Use which(1) to determine full path name to haskell compiler executable+hcExecutablePath :: FilePath -> CompilerFlavor -> Maybe FilePath+hcExecutablePath = memoize2 $ \root hc ->+ listToMaybe $ lines $ unsafePerformIO $ chroot root (readProcess "which" [hcExecutable hc] "") -aptCacheDepends :: FilePath -> String -> String -> Either SomeException String-aptCacheDepends =- memoize3 (\ root hcname ver -> unsafePerformIO (try (chroot root (readProcess "apt-cache" ["depends", hcname ++ "=" ++ ver] ""))))+hcVersion :: FilePath -> CompilerFlavor -> Maybe Version+hcVersion root hc =+ let Just hcpath = hcExecutablePath root hc in+ maybe Nothing parseVersion' $+ listToMaybe $+ lines $+ unsafePerformIO . chroot root $+ readProcess hcpath+ [case hc of+ GHCJS -> "--numeric-ghc-version"+ _ -> "--numeric-version"]+ ""++-- | Use dpkg -S to convert the executable path to a debian binary+-- package name.+hcBinPkgName :: FilePath -> FilePath -> Maybe BinPkgName+hcBinPkgName = memoize2 $ \root path ->+ let s = unsafePerformIO (chroot root (readProcess "dpkg" ["-S", path] "")) in+ case map (takeWhile (/= ':')) (lines s) of+ [] -> Nothing+ [name] -> Just (BinPkgName name)+ _ -> error $ "Unexpected output from " ++ showCommandForUser "dpkg" ["-S", path] ++ ": ++ " ++ show s++-- | What built in libraries does this haskell compiler provide?+aptCacheProvides :: BinPkgName -> FilePath -> [PackageIdentifier]+aptCacheProvides = memoize2 aptCacheProvides' where- chroot "/" = id- chroot root = useEnv root (return . force)+ aptCacheProvides' hcname root =+ trace ("aptCacheProvides " ++ show hcname ++ " in " ++ root ++ " -> " ++ show pis) pis+ where+ pis = (catMaybes .+ map parseLib .+ filter (isSuffixOf ".conf") .+ map last .+ filter (elem "package.conf.d") .+ map (groupBy (\a b -> (a == '/') == (b == '/')))) lns+ lns = lines $ unsafePerformIO (chroot root (readProcess "dpkg" ["-L", unBinPkgName hcname] ""))+ parseLib :: String -> Maybe PackageIdentifier+ parseLib s =+ case s =~ ("(.*)-([0-9.]*)-([a-f0-9]*).conf$") :: (String, String, String, [String]) of+ (_, _, _, [cabalName, ver, _sum]) ->+ case parseVersion' ver of+ Just v -> Just (PackageIdentifier (PackageName cabalName) v)+ _ -> Nothing+ _ -> Nothing +{-+takeBetween :: (a -> Bool) -> (a -> Bool) -> [a] -> [a]+takeBetween startPred endPred = takeWhile (not . endPred) . dropWhile startPred . dropWhile (not . startPred)+-}+ aptCacheConflicts :: FilePath -> String -> DebianVersion -> [BinPkgName] aptCacheConflicts root hcname ver = either (\ _ -> []) (mapMaybe doLine . lines) (aptCacheDepends root hcname (show (prettyDebianVersion ver)))@@ -113,9 +124,21 @@ (_, _, _, [name]) -> Just (BinPkgName name) _ -> Nothing -aptVersions :: FilePath -> String -> [DebianVersion]+aptCacheDepends :: FilePath -> String -> String -> Either SomeException String+aptCacheDepends =+ memoize3 (\ root hcname ver -> unsafePerformIO (try (chroot root (readProcess "apt-cache" ["depends", hcname ++ "=" ++ ver] ""))))++aptVersions :: FilePath -> BinPkgName -> [DebianVersion] aptVersions root hcname = either (\ _ -> []) (map parseDebianVersion' . filter (/= "") . map (takeWhile (/= ' ')) . takeWhile (not . isPrefixOf "Reverse Depends:") . drop 1 . dropWhile (not . isPrefixOf "Versions:") . lines) (aptCacheShowPkg root hcname) -takeBetween :: (a -> Bool) -> (a -> Bool) -> [a] -> [a]-takeBetween startPred endPred = takeWhile (not . endPred) . dropWhile startPred . dropWhile (not . startPred)+aptCacheShowPkg :: FilePath -> BinPkgName -> Either SomeException String+aptCacheShowPkg =+ memoize2 (\ root hcname -> tr root hcname $ unsafePerformIO (try (chroot root (readProcess "apt-cache" ["showpkg", unBinPkgName hcname] ""))))+ where+ tr root hcname x = trace ("aptCacheShowPkg " ++ show hcname ++ " in " ++ show root ++ " -> " ++ show x) x+++chroot :: (NFData a, MonadIO m, MonadMask m) => String -> m a -> m a+chroot "/" = id+chroot root = useEnv root (return . force)
test-data/artvaluereport-data/output/debian/control view
@@ -62,6 +62,8 @@ , libghc-mtl-prof , libghc-network-dev (>= 2.4) , libghc-network-prof (>= 2.4)+ , libghc-old-time-dev+ , libghc-old-time-prof , libghc-pandoc-dev , libghc-pandoc-prof , libghc-pandoc-types-dev@@ -90,8 +92,6 @@ , libghc-text-prof , libghc-utf8-string-dev , libghc-utf8-string-prof- , libghc-xhtml-dev- , libghc-xhtml-prof Build-Depends-Indep: ghc-doc , libghc-extra-doc , libghc-hunit-doc@@ -120,6 +120,7 @@ , libghc-maccatcher-doc , libghc-mtl-doc , libghc-network-doc+ , libghc-old-time-doc , libghc-pandoc-doc , libghc-pandoc-types-doc , libghc-parsec3-doc (>= 3) | libghc-parsec2-doc (<< 3)@@ -134,7 +135,6 @@ , libghc-syb-with-class-doc , libghc-text-doc , libghc-utf8-string-doc- , libghc-xhtml-doc Standards-Version: 3.9.6 Homepage: http://artvaluereportonline.com X-Description: Data structures used by the fine art appraisal application
test-data/artvaluereport2/output/debian/control view
@@ -49,6 +49,8 @@ , libghc-lifted-base-dev , libghc-mtl-dev , libghc-network-dev (>= 2.4)+ , libghc-old-locale-dev+ , libghc-old-time-dev , libghc-pandoc-dev , libghc-parsec3-dev , libghc-process-extras-dev (>= 0.5)@@ -62,14 +64,12 @@ , libghc-syb-with-class-dev , libghc-tagged-dev , libghc-text-dev- , libghc-transformers-dev , libghc-uniplate-dev , libghc-utf8-string-dev , libghc-web-routes-dev , libghc-web-routes-happstack-dev , libghc-web-routes-hsp-dev , libghc-web-routes-th-dev- , libghc-xhtml-dev Standards-Version: 3.9.6 Homepage: http://appraisalreportonline.com X-Description: Haskell modules for fine art appraisal applications
test-data/creativeprompts/output/debian/control view
@@ -22,6 +22,7 @@ , libghc-digestive-functors-dev (>= 0.2) , libghc-digestive-functors-happstack-dev (>= 0.1) , libghc-digestive-functors-hsp-dev (>= 0.3.1)+ , libghc-extensible-exceptions-dev , libghc-happstack-authenticate-dev (>= 0.6) , libghc-happstack-hsp-dev (>= 7.1) , libghc-happstack-hsp-dev (<< 7.2)@@ -37,6 +38,8 @@ , libghc-json-dev , libghc-mtl-dev , libghc-network-dev+ , libghc-old-locale-dev+ , libghc-old-time-dev , libghc-parsec3-dev (>= 3) | libghc-parsec2-dev (<< 3) , libghc-random-dev , libghc-safecopy-dev (>= 0.6.0)