debian 3.61 → 3.64
raw patch · 33 files changed
+233/−1134 lines, 33 filesdep +pureMD5dep ~UnixutilsPVP ok
version bump matches the API change (PVP)
Dependencies added: pureMD5
Dependency ranges changed: Unixutils
API changes (from Hackage documentation)
- Debian.GenBuildDeps: BinPkgName :: PkgName -> BinPkgName
- Debian.GenBuildDeps: SrcPkgName :: PkgName -> SrcPkgName
- Debian.GenBuildDeps: instance Eq BinPkgName
- Debian.GenBuildDeps: instance Eq SrcPkgName
- Debian.GenBuildDeps: instance Show BinPkgName
- Debian.GenBuildDeps: instance Show RelaxInfo
- Debian.GenBuildDeps: instance Show SrcPkgName
- Debian.GenBuildDeps: newtype BinPkgName
- Debian.GenBuildDeps: newtype RelaxInfo
- Debian.GenBuildDeps: newtype SrcPkgName
- Debian.GenBuildDeps: type DepInfo = (SrcPkgName, Relations, [BinPkgName])
- Debian.Relation: type PkgName = String
- Debian.Relation.ByteString: type PkgName = String
- Debian.Relation.Common: type PkgName = String
- Debian.Relation.String: type PkgName = String
+ Debian.Apt.Dependencies: gutsyPackages :: [Char]
+ Debian.Apt.Dependencies: sidPackages :: [Char]
+ Debian.Apt.Dependencies: test :: FilePath -> String -> Labeler Paragraph -> IO ()
+ Debian.GenBuildDeps: DepInfo :: SrcPkgName -> Relations -> [BinPkgName] -> DepInfo
+ Debian.GenBuildDeps: binaryNames :: DepInfo -> [BinPkgName]
+ Debian.GenBuildDeps: data DepInfo
+ Debian.GenBuildDeps: instance Show OldRelaxInfo
+ Debian.GenBuildDeps: newtype OldRelaxInfo
+ Debian.GenBuildDeps: oldRelaxDeps :: OldRelaxInfo -> [DepInfo] -> [DepInfo]
+ Debian.GenBuildDeps: relations :: DepInfo -> Relations
+ Debian.GenBuildDeps: sourceName :: DepInfo -> SrcPkgName
+ Debian.GenBuildDeps: type RelaxInfo = SrcPkgName -> BinPkgName -> Bool
+ Debian.Relation: BinPkgName :: PkgName -> BinPkgName
+ Debian.Relation: PkgName :: String -> PkgName
+ Debian.Relation: SrcPkgName :: PkgName -> SrcPkgName
+ Debian.Relation: newtype BinPkgName
+ Debian.Relation: newtype PkgName
+ Debian.Relation: newtype SrcPkgName
+ Debian.Relation: prettyBinPkgName :: BinPkgName -> Doc
+ Debian.Relation: prettyPkgName :: PkgName -> Doc
+ Debian.Relation: prettySrcPkgName :: SrcPkgName -> Doc
+ Debian.Relation: unBinPkgName :: BinPkgName -> PkgName
+ Debian.Relation: unPkgName :: PkgName -> String
+ Debian.Relation: unSrcPkgName :: SrcPkgName -> PkgName
+ Debian.Relation.ByteString: data PkgName
+ Debian.Relation.Common: BinPkgName :: PkgName -> BinPkgName
+ Debian.Relation.Common: PkgName :: String -> PkgName
+ Debian.Relation.Common: SrcPkgName :: PkgName -> SrcPkgName
+ Debian.Relation.Common: instance Eq BinPkgName
+ Debian.Relation.Common: instance Eq PkgName
+ Debian.Relation.Common: instance Eq SrcPkgName
+ Debian.Relation.Common: instance Ord BinPkgName
+ Debian.Relation.Common: instance Ord PkgName
+ Debian.Relation.Common: instance Ord SrcPkgName
+ Debian.Relation.Common: instance Show BinPkgName
+ Debian.Relation.Common: instance Show PkgName
+ Debian.Relation.Common: instance Show SrcPkgName
+ Debian.Relation.Common: newtype BinPkgName
+ Debian.Relation.Common: newtype PkgName
+ Debian.Relation.Common: newtype SrcPkgName
+ Debian.Relation.Common: prettyBinPkgName :: BinPkgName -> Doc
+ Debian.Relation.Common: prettyPkgName :: PkgName -> Doc
+ Debian.Relation.Common: prettySrcPkgName :: SrcPkgName -> Doc
+ Debian.Relation.Common: unBinPkgName :: BinPkgName -> PkgName
+ Debian.Relation.Common: unPkgName :: PkgName -> String
+ Debian.Relation.Common: unSrcPkgName :: SrcPkgName -> PkgName
+ Debian.Relation.String: data PkgName
+ Debian.Release: instance Data Arch
+ Debian.Release: instance Data ReleaseName
+ Debian.Release: instance Typeable Arch
+ Debian.Release: instance Typeable ReleaseName
- Debian.Apt.Dependencies: CSP :: PackageNameMap a -> Relations -> (a -> Relations) -> (a -> Relations) -> (a -> (String, DebianVersion)) -> CSP a
+ Debian.Apt.Dependencies: CSP :: PackageNameMap a -> Relations -> (a -> Relations) -> (a -> Relations) -> (a -> (BinPkgName, DebianVersion)) -> CSP a
- Debian.Apt.Dependencies: conflict' :: (String, DebianVersion) -> Relation -> Bool
+ Debian.Apt.Dependencies: conflict' :: (BinPkgName, DebianVersion) -> Relation -> Bool
- Debian.Apt.Dependencies: earliestInconsistency :: CSP a -> State a -> Maybe ((String, DebianVersion), (String, DebianVersion))
+ Debian.Apt.Dependencies: earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion))
- Debian.Apt.Dependencies: packageVersion :: CSP a -> a -> (String, DebianVersion)
+ Debian.Apt.Dependencies: packageVersion :: CSP a -> a -> (BinPkgName, DebianVersion)
- Debian.Apt.Dependencies: packageVersionParagraph :: Paragraph -> (String, DebianVersion)
+ Debian.Apt.Dependencies: packageVersionParagraph :: Paragraph -> (BinPkgName, DebianVersion)
- Debian.Apt.Dependencies: type ConflictSet = ([(String, DebianVersion)], [Relation])
+ Debian.Apt.Dependencies: type ConflictSet = ([(BinPkgName, DebianVersion)], [Relation])
- Debian.Apt.Package: addProvides :: (p -> [PkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p
+ Debian.Apt.Package: addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p
- Debian.Apt.Package: findProvides :: (p -> [PkgName]) -> [p] -> [(PkgName, p)]
+ Debian.Apt.Package: findProvides :: (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)]
- Debian.Apt.Package: lookupPackageByRel :: PackageNameMap a -> (a -> (String, DebianVersion)) -> Relation -> [a]
+ Debian.Apt.Package: lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a]
- Debian.Apt.Package: packageNameMap :: (a -> String) -> [a] -> PackageNameMap a
+ Debian.Apt.Package: packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a
- Debian.Apt.Package: type PackageNameMap a = Map String [a]
+ Debian.Apt.Package: type PackageNameMap a = Map BinPkgName [a]
- Debian.GenBuildDeps: RelaxInfo :: [(BinPkgName, Maybe SrcPkgName)] -> RelaxInfo
+ Debian.GenBuildDeps: RelaxInfo :: [(BinPkgName, Maybe SrcPkgName)] -> OldRelaxInfo
- Debian.Relation: Rel :: PkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
- Debian.Relation.ByteString: Rel :: PkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.ByteString: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
- Debian.Relation.Common: Rel :: PkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.Common: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
- Debian.Relation.String: Rel :: PkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
+ Debian.Relation.String: Rel :: BinPkgName -> (Maybe VersionReq) -> (Maybe ArchitectureReq) -> Relation
Files
- .ghci +0/−1
- Debian/Apt/Dependencies.hs +13/−12
- Debian/Apt/Index.hs +5/−4
- Debian/Apt/Package.hs +6/−6
- Debian/Control/ByteString.hs +2/−2
- Debian/Deb.hs +9/−8
- Debian/GenBuildDeps.hs +59/−27
- Debian/Relation.hs +7/−2
- Debian/Relation/ByteString.hs +1/−12
- Debian/Relation/Common.hs +15/−5
- Debian/Relation/String.hs +9/−4
- Debian/Release.hs +5/−2
- Debian/URI.hs +43/−22
- Debian/Util/FakeChanges.hs +10/−7
- Debian/Version/Internal.hs +9/−4
- Test/Dependencies.hs +6/−6
- cbits/gwinsz.h +0/−1
- debian.cabal +24/−5
- debian/apt-get-build-depends.1 +0/−17
- debian/changelog +0/−121
- debian/changelog.pre-debian +0/−625
- debian/compat +0/−1
- debian/control +0/−135
- debian/debian-report.1 +0/−20
- debian/fakechanges.1 +0/−17
- debian/haskell-debian-utils.install +0/−3
- debian/haskell-debian-utils.manpages +0/−1
- debian/libghc-debian-doc.doc-base +0/−13
- debian/patches/dont-build-tests.patch +0/−26
- debian/patches/series +0/−1
- debian/rules +0/−8
- debian/watch +0/−5
- utils/AptGetBuildDeps.hs +10/−11
− .ghci
@@ -1,1 +0,0 @@-:set -XCPP -optP -DCABAL19
Debian/Apt/Dependencies.hs view
@@ -20,6 +20,7 @@ import Data.Tree(Tree(rootLabel, Node)) import Debian.Apt.Package(PackageNameMap, packageNameMap, lookupPackageByRel) import Debian.Control.ByteString(ControlFunctions(stripWS, lookupP, parseControlFromFile), Field'(Field), Control'(Control), Paragraph, Control)+import Debian.Relation (BinPkgName(..), PkgName(..)) import Debian.Relation.ByteString(ParseRelations(..), Relation(..), OrRelation, AndRelation, Relations, checkVersionReq) import Debian.Version(DebianVersion, parseDebianVersion, prettyDebianVersion) @@ -42,7 +43,7 @@ , relations :: Relations , depFunction :: (a -> Relations) , conflicts :: a -> Relations- , packageVersion :: a -> (String, DebianVersion)+ , packageVersion :: a -> (BinPkgName, DebianVersion) } -- * Test CSP@@ -57,10 +58,10 @@ , packageVersion = packageVersionParagraph } where- getName :: Paragraph -> String- getName p = case lookupP "Package" p of Nothing -> error "Missing Package field" ; (Just (Field (_,n))) -> C.unpack (stripWS n)+ getName :: Paragraph -> BinPkgName+ getName p = case lookupP "Package" p of Nothing -> error "Missing Package field" ; (Just (Field (_,n))) -> BinPkgName (PkgName (C.unpack (stripWS n))) conflicts' :: Paragraph -> Relations- conflicts' p = + conflicts' p = case lookupP "Conflicts" p of Nothing -> [] Just (Field (_, c)) -> either (error . show) id (parseRelations c)@@ -98,14 +99,14 @@ testCSP controlFP depF rel (mapM_ (\ (_,p) -> mapM_ (print . second prettyDebianVersion . packageVersionParagraph) p ) . take 1 . search labeler) -- TODO: add better errors-packageVersionParagraph :: Paragraph -> (String, DebianVersion)+packageVersionParagraph :: Paragraph -> (BinPkgName, DebianVersion) packageVersionParagraph p = case lookupP "Package" p of Nothing -> error $ "Paragraph missing Package field" (Just (Field (_, name))) -> case lookupP "Version" p of Nothing -> error $ "Paragraph missing Version field"- (Just (Field (_, version))) -> (C.unpack (stripWS name), parseDebianVersion (C.unpack version))+ (Just (Field (_, version))) -> (BinPkgName (PkgName (C.unpack (stripWS name))), parseDebianVersion (C.unpack version)) @@ -117,11 +118,11 @@ if name1 == name2 then version1 /= version2 else- any (conflict' (name1, version1)) (concat $ (conflicts csp) p2) || + any (conflict' (name1, version1)) (concat $ (conflicts csp) p2) || any (conflict' (name2, version2)) (concat $ (conflicts csp) p1)- + -- |JAS: deal with 'Provides' (can a package provide more than one package?)-conflict' :: (String, DebianVersion) -> Relation -> Bool+conflict' :: (BinPkgName, DebianVersion) -> Relation -> Bool conflict' (pName, pVersion) (Rel pkgName mVersionReq _) = (pName == pkgName) && (checkVersionReq mVersionReq (Just pVersion)) @@ -198,7 +199,7 @@ -- the 'reverse as' is because the vars are order high to low, but we -- want to find the lowest numbered (aka, eariest) inconsistency ?? -- -earliestInconsistency :: CSP a -> State a -> Maybe ((String, DebianVersion), (String, DebianVersion))+earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion)) earliestInconsistency _ (_,[]) = Nothing earliestInconsistency _ (_,[_p]) = Nothing earliestInconsistency csp (_,(p:ps)) =@@ -209,7 +210,7 @@ -- * Conflict Set -- | conflicting packages and relations that require non-existant packages-type ConflictSet = ([(String, DebianVersion)],[Relation])+type ConflictSet = ([(BinPkgName, DebianVersion)],[Relation]) isConflict :: ConflictSet -> Bool isConflict ([],[]) = False@@ -231,7 +232,7 @@ f s@(status,_) = case status of (MissingDep rel) -> (s, ([], [rel]))- _ -> + _ -> (s, case (earliestInconsistency csp) s of Nothing -> ([],[])
Debian/Apt/Index.hs view
@@ -20,6 +20,7 @@ import qualified Codec.Compression.BZip as BZip import qualified Data.ByteString.Char8 as B import qualified Data.ByteString.Lazy.Char8 as L+import qualified Data.Digest.Pure.MD5 as MD5 import Data.Function import Data.List import qualified Data.Map as M@@ -35,8 +36,8 @@ import System.Directory import System.FilePath ((</>)) import System.Posix.Files-import System.Unix.FilePath-import qualified System.Unix.Misc as Misc+import System.FilePath (takeBaseName)+--import qualified System.Unix.Misc as Misc import Text.ParserCombinators.Parsec.Error @@ -286,11 +287,11 @@ if not e then return Nothing else do size <- getFileStatus (basePath </> fp) >>= return . fromIntegral . fileSize- md5 <- Misc.md5sum (basePath </> fp)+ md5 <- L.readFile (basePath </> fp) >>= return . show . MD5.md5 return $ Just (CheckSums { md5sum = Just md5, sha1 = Nothing, sha256 = Nothing }, size, fp) -- |find the Contents-* files. These are not listed in the Release file findContentsFiles :: (FilePath -> Bool) -> FilePath -> IO [FilePath] findContentsFiles filterP distDir = do files <- getDirectoryContents distDir- return $ filter filterP $ filter (isPrefixOf "Contents-" . baseName) files+ return $ filter filterP $ filter (isPrefixOf "Contents-" . takeBaseName) files
Debian/Apt/Package.hs view
@@ -11,13 +11,13 @@ import Debian.Version import Debian.Relation -type PackageNameMap a = Map.Map String [a]+type PackageNameMap a = Map.Map BinPkgName [a] -- |'packageNameMap' creates a map from a package name to all the versions of that package -- NOTE: Provides are not included in the map -- NOTE: the sort order is random -- this is perhaps a bug -- see also: 'addProvides'-packageNameMap :: (a -> String) -> [a] -> PackageNameMap a+packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a packageNameMap getName packages = foldl (\m p -> Map.insertWith (++) (getName p) [p] m) Map.empty packages -- |'addProvides' finds packages that Provide other packages and adds@@ -25,21 +25,21 @@ -- list, so that real packages have 'higher priority' than virtual -- packages. -- NOTE: Does not check for duplication or multiple use-addProvides :: (p -> [PkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p+addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p addProvides providesf ps pnm = let provides = findProvides providesf ps in foldl (\m (packageName, package) -> Map.insertWith (flip (++)) packageName [package] m) pnm provides -- |'findProvides'-findProvides :: forall p. (p -> [PkgName]) -> [p] -> [(PkgName, p)]+findProvides :: forall p. (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)] findProvides providesf packages = foldl addProvides [] packages- where addProvides :: [(PkgName, p)] -> p -> [(PkgName, p)]+ where addProvides :: [(BinPkgName, p)] -> p -> [(BinPkgName, p)] addProvides providesList package = foldl (\pl pkgName -> (pkgName, package): pl) providesList (providesf package) -- |'lookupPackageByRel' returns all the packages that satisfy the specified relation -- TODO: Add architecture check-lookupPackageByRel :: PackageNameMap a -> (a -> (String, DebianVersion)) -> Relation -> [a]+lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a] lookupPackageByRel pm packageVersionF (Rel pkgName mVerReq _mArch) = case Map.lookup pkgName pm of Nothing -> []
Debian/Control/ByteString.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE PackageImports, ScopedTypeVariables #-} {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-orphans #-} module Debian.Control.ByteString ( Control'(..)@@ -22,7 +22,7 @@ -- Standard GHC modules import qualified Control.Exception as E-import Control.Monad.State+import "mtl" Control.Monad.State import Data.Char(chr,ord,toLower) import Data.List
Debian/Deb.hs view
@@ -5,19 +5,20 @@ import Data.ByteString.Lazy (empty) import Debian.Control.Common-import System.Unix.Directory-import System.Unix.FilePath-import System.Unix.Process+import System.Exit (ExitCode(..))+import System.Unix.Directory (withTemporaryDirectory, withWorkingDirectory)+import System.Unix.FilePath (realpath)+import System.Unix.Process (readProcessWithExitCode) fields :: (ControlFunctions a) => FilePath -> IO (Control' a) fields debFP = withTemporaryDirectory ("fields.XXXXXX") $ \tmpdir -> do debFP <- realpath debFP- withWorkingDirectory tmpdir $ - do (out, err, res) <- lazyProcess "ar" ["x",debFP,"control.tar.gz"] Nothing Nothing empty >>= return . collectOutputUnpacked - when (res /= ExitSuccess) (error $ "Dpkg.fields: " ++ out ++ "\n" ++ err ++ "\n" ++ show res)- (out, err, res) <- lazyProcess "tar" ["xzf", "control.tar.gz", "./control"] Nothing Nothing empty >>= return . collectOutputUnpacked- when (res /= ExitSuccess) (error $ "Dpkg.fields: " ++ out ++ "\n" ++ err ++ "\n" ++ show res)+ withWorkingDirectory tmpdir $+ do (res, out, err) <- readProcessWithExitCode "ar" ["x",debFP,"control.tar.gz"] id empty+ when (res /= ExitSuccess) (error $ "Dpkg.fields: " ++ show out ++ "\n" ++ show err ++ "\n" ++ show res)+ (res, out, err) <- readProcessWithExitCode "tar" ["xzf", "control.tar.gz", "./control"] id empty+ when (res /= ExitSuccess) (error $ "Dpkg.fields: " ++ show out ++ "\n" ++ show err ++ "\n" ++ show res) c <- parseControlFromFile "control" case c of Left e -> error (show e)
Debian/GenBuildDeps.hs view
@@ -1,14 +1,15 @@+{-# LANGUAGE RecordWildCards, ScopedTypeVariables #-} -- |Figure out the dependency relation between debianized source -- directories. The code to actually solve these dependency relations -- for a particular set of binary packages is in Debian.Repo.Dependency. module Debian.GenBuildDeps - ( DepInfo- , SrcPkgName(..)- , BinPkgName(..)+ ( DepInfo(..) -- * Preparing dependency info , buildDependencies- , RelaxInfo(..)+ , RelaxInfo , relaxDeps+ , OldRelaxInfo(..)+ , oldRelaxDeps -- * Using dependency info , BuildableInfo(..) , buildable@@ -30,15 +31,13 @@ import qualified Data.Set as Set import Debian.Relation import System.Directory (getDirectoryContents, doesFileExist)-import System.IO -newtype SrcPkgName = SrcPkgName PkgName deriving (Show, Eq)-newtype BinPkgName = BinPkgName PkgName deriving (Show, Eq)---- |This type describes the build dependencies of a source package.-type DepInfo = (SrcPkgName, -- source package name- Relations, -- dependency relations- [BinPkgName]) -- binary package names+-- | This type describes the build dependencies of a source package.+data DepInfo = DepInfo {+ sourceName :: SrcPkgName -- ^ source package name+ , relations :: Relations -- ^ dependency relations+ , binaryNames :: [BinPkgName] -- ^ binary dependency names (is this a function of relations?)+ } -- |Turn a list of eithers into an either of lists -- copied from Extra.Either@@ -54,9 +53,9 @@ buildDependencies :: Control -> Either String DepInfo buildDependencies (Control []) = error "Control file seems to be empty" buildDependencies (Control (source:binaries)) =- either (Left . concat) (\ deps -> Right (sourcePackage, deps, bins)) deps+ either (Left . concat) (\ deps -> Right (DepInfo {sourceName = sourcePackage, relations = deps, binaryNames = bins})) deps where- sourcePackage = maybe (error "First Paragraph in control file lacks a Source field") SrcPkgName $ assoc "Source" source+ sourcePackage = maybe (error "First Paragraph in control file lacks a Source field") (SrcPkgName . PkgName) $ assoc "Source" source -- The raw list of build dependencies for this package deps = either Left (Right . concat) (concatEithers [buildDeps, buildDepsIndep]) buildDeps =@@ -69,36 +68,69 @@ _ -> Right [] bins = mapMaybe lookupPkgName binaries lookupPkgName :: Paragraph -> Maybe BinPkgName- lookupPkgName p = maybe Nothing (Just . BinPkgName) (assoc "Package" p)+ lookupPkgName p = maybe Nothing (Just . BinPkgName . PkgName) (assoc "Package" p) -- |Specifies build dependencies that should be ignored during the build -- decision. If the pair is (BINARY, Nothing) it means the binary package -- BINARY should always be ignored when deciding whether to build. If the -- pair is (BINARY, Just SOURCE) it means that binary package BINARY should -- be ignored when deiciding whether to build package SOURCE.-newtype RelaxInfo = RelaxInfo [(BinPkgName, Maybe SrcPkgName)] deriving Show+newtype OldRelaxInfo = RelaxInfo [(BinPkgName, Maybe SrcPkgName)] deriving Show +-- | Given a source package name and a binary package name, return+-- False if the binary package should be ignored hwen deciding whether+-- to build the source package. This is used to prevent build+-- dependency cycles from triggering unnecessary rebuilds. (This is a+-- replacement for the RelaxInfo type, which we temporarily rename+-- OldRelaxInfo.)+type RelaxInfo = SrcPkgName -> BinPkgName -> Bool++makeRelaxInfo :: OldRelaxInfo -> RelaxInfo+makeRelaxInfo (RelaxInfo xs) srcPkgName binPkgName =+ Set.member binPkgName global || maybe False (Set.member binPkgName) (Map.lookup srcPkgName mp)+ where+ (global :: Set.Set BinPkgName, mp :: Map.Map SrcPkgName (Set.Set BinPkgName)) =+ foldr (\ entry (global', mp') ->+ case entry of+ (b, Just s) -> (global', Map.insertWith Set.union s (Set.singleton b) mp')+ (b, Nothing) -> (Set.insert b global', mp')) (Set.empty, Map.empty) xs+ -- |Remove any dependencies that are designated \"relaxed\" by relaxInfo. relaxDeps :: RelaxInfo -> [DepInfo] -> [DepInfo] relaxDeps relaxInfo deps =- map (relaxDep relaxInfo) deps+ map relaxDep deps where- relaxDep :: RelaxInfo -> DepInfo -> DepInfo- relaxDep relaxInfo (sourceName, relations, binaryNames) =- (sourceName, filteredDependencies, binaryNames)+ relaxDep :: DepInfo -> DepInfo+ relaxDep info = info {relations = filteredDependencies} where -- Discard any dependencies not on the filtered package name list. If -- this results in an empty list in an or-dep the entire dependency can -- be discarded. filteredDependencies :: Relations- filteredDependencies = filter (/= []) (map (filter keepDep) relations)+ filteredDependencies = filter (/= []) (map (filter keepDep) (relations info)) keepDep :: Relation -> Bool- keepDep (Rel name _ _) = not (elem (BinPkgName name) ignored)+ keepDep (Rel name _ _) = not (relaxInfo (sourceName info) name)++-- |Remove any dependencies that are designated \"relaxed\" by relaxInfo.+oldRelaxDeps :: OldRelaxInfo -> [DepInfo] -> [DepInfo]+oldRelaxDeps relaxInfo deps =+ map relaxDep deps+ where+ relaxDep :: DepInfo -> DepInfo+ relaxDep info = info {relations = filteredDependencies}+ where+ -- Discard any dependencies not on the filtered package name list. If+ -- this results in an empty list in an or-dep the entire dependency can+ -- be discarded.+ filteredDependencies :: Relations+ filteredDependencies = filter (/= []) (map (filter keepDep) (relations info))+ keepDep :: Relation -> Bool+ keepDep (Rel name _ _) = not (elem name ignored) -- Binary packages to be ignored wrt this source package's build decision- ignored = ignoredForSourcePackage sourceName relaxInfo+ ignored = ignoredForSourcePackage (sourceName info) relaxInfo -- Return a list of binary packages which should be ignored for this -- source package.- ignoredForSourcePackage :: SrcPkgName -> RelaxInfo -> [BinPkgName]+ ignoredForSourcePackage :: SrcPkgName -> OldRelaxInfo -> [BinPkgName] ignoredForSourcePackage source (RelaxInfo pairs) = map fst . filter (maybe True (== source) . snd) $ pairs -- concat . map binaries . catMaybes . map snd . filter (\ (_, x) -> maybe True (== source) x) $ pairs@@ -207,13 +239,13 @@ -- a pretty simplistic approach to 'or' build depends. However, I -- think this should work pretty nicely in practice. compareSource :: DepInfo -> DepInfo -> Ordering-compareSource (_, depends1, bins1) (_, depends2, bins2)+compareSource (DepInfo {relations = depends1, binaryNames = bins1}) (DepInfo {relations = depends2, binaryNames = bins2}) | any (\rel -> isJust (find (checkPackageNameReq rel) bins2)) (concat depends1) = GT | any (\rel -> isJust (find (checkPackageNameReq rel) bins1)) (concat depends2) = LT | otherwise = EQ where checkPackageNameReq :: Relation -> BinPkgName -> Bool- checkPackageNameReq (Rel rPkgName _ _) (BinPkgName bPkgName) = rPkgName == bPkgName + checkPackageNameReq (Rel rPkgName _ _) bPkgName = rPkgName == bPkgName -- |Return the dependency info for a list of control files. genDeps :: [FilePath] -> IO (Either String [DepInfo])@@ -234,7 +266,7 @@ getSourceOrder fp = findControlFiles fp >>= genDeps >>=- return . either Left (Right . map ( \(pkgName,_,_) -> pkgName) . orderSource compareSource)+ return . either Left (Right . map sourceName . orderSource compareSource) where -- Return a list of the files that look like debian\/control. findControlFiles :: FilePath -> IO [FilePath]
Debian/Relation.hs view
@@ -1,7 +1,12 @@ -- |A module for working with debian relationships <http://www.debian.org/doc/debian-policy/ch-relationships.html> module Debian.Relation ( -- * Types- PkgName+ PkgName(..)+ , SrcPkgName(..)+ , BinPkgName(..)+ , prettyPkgName+ , prettySrcPkgName+ , prettyBinPkgName , AndRelation , OrRelation , Relations@@ -16,5 +21,5 @@ , ParseRelations(..) ) where -import Debian.Relation.Common (prettyRelation)+import Debian.Relation.Common (prettyRelation, SrcPkgName(..), BinPkgName(..), PkgName(..), prettyPkgName, prettySrcPkgName, prettyBinPkgName) import Debian.Relation.String
Debian/Relation/ByteString.hs view
@@ -15,13 +15,6 @@ , ParseRelations(..) ) where --- Standard GHC Modules--import Data.List-import Text.ParserCombinators.Parsec---- 3rd Party Modules- import qualified Data.ByteString.Char8 as C -- Local Modules@@ -34,8 +27,4 @@ -- For now we just wrap the string version instance ParseRelations C.ByteString where- parseRelations byteStr = - let str = C.unpack byteStr in- case parse pRelations str str of- Right relations -> Right (filter (/= []) relations)- x -> x+ parseRelations byteStr = parseRelations (C.unpack byteStr)
Debian/Relation/Common.hs view
@@ -13,16 +13,26 @@ -- Datatype for relations -type PkgName = String- type Relations = AndRelation type AndRelation = [OrRelation] type OrRelation = [Relation] -data Relation = Rel PkgName (Maybe VersionReq) (Maybe ArchitectureReq)- deriving Eq+data Relation = Rel BinPkgName (Maybe VersionReq) (Maybe ArchitectureReq) deriving Eq +newtype PkgName = PkgName {unPkgName :: String} deriving (Show, Eq, Ord) +newtype SrcPkgName = SrcPkgName {unSrcPkgName :: PkgName} deriving (Show, Eq, Ord)+newtype BinPkgName = BinPkgName {unBinPkgName :: PkgName} deriving (Show, Eq, Ord)++prettySrcPkgName :: SrcPkgName -> Doc+prettySrcPkgName = prettyPkgName . unSrcPkgName++prettyBinPkgName :: BinPkgName -> Doc+prettyBinPkgName = prettyPkgName . unBinPkgName++prettyPkgName :: PkgName -> Doc+prettyPkgName = text . unPkgName+ class ParseRelations a where -- |'parseRelations' parse a debian relation (i.e. the value of a -- Depends field). Return a parsec error or a value of type@@ -32,7 +42,7 @@ prettyRelation :: Relation -> Doc prettyRelation (Rel name ver arch) =- text (name ++ maybe "" (show . prettyVersionReq) ver ++ maybe "" (show . prettyArchitectureReq) arch)+ text (unPkgName (unBinPkgName name) ++ maybe "" (show . prettyVersionReq) ver ++ maybe "" (show . prettyArchitectureReq) arch) instance Ord Relation where compare (Rel pkgName1 mVerReq1 _mArch1) (Rel pkgName2 mVerReq2 _mArch2) =
Debian/Relation/String.hs view
@@ -19,7 +19,6 @@ -- Standard GHC Modules -import Data.List import Text.ParserCombinators.Parsec -- Local Modules@@ -30,10 +29,16 @@ -- * ParseRelations instance ParseRelations String where- parseRelations str = - case parse pRelations str str of+ parseRelations str =+ let str' = scrub str in+ case parse pRelations str' str' of Right relations -> Right (filter (/= []) relations) x -> x+ where+ scrub = unlines . filter (not . comment) . lines+ comment s = case dropWhile (`elem` " \t") s of+ ('#' : _) -> True+ _ -> False -- * Relation Parser @@ -63,7 +68,7 @@ mVerReq <- pMaybeVerReq skipMany whiteChar mArch <- pMaybeArch- return $ Rel pkgName mVerReq mArch+ return $ Rel (BinPkgName (PkgName pkgName)) mVerReq mArch pMaybeVerReq :: RelParser (Maybe VersionReq) pMaybeVerReq =
Debian/Release.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Debian.Release ( ReleaseName(..) , parseReleaseName@@ -13,12 +14,14 @@ , parseSection' ) where +import Data.Data (Data)+import Data.Typeable (Typeable) import Debian.URI -- |A distribution (aka release) name. This type is expected to refer -- to a subdirectory of the dists directory which is at the top level -- of a repository.-data ReleaseName = ReleaseName { relName :: String } deriving (Eq, Ord, Read, Show)+data ReleaseName = ReleaseName { relName :: String } deriving (Eq, Ord, Read, Show, Data, Typeable) parseReleaseName :: String -> ReleaseName parseReleaseName name = ReleaseName {relName = unEscapeString name}@@ -28,7 +31,7 @@ -- |The types of architecture that a package can have, either Source -- or some type of binary architecture.-data Arch = Source | Binary String deriving (Read, Show, Eq, Ord)+data Arch = Source | Binary String deriving (Read, Show, Eq, Ord, Data, Typeable) archName :: Arch -> String archName Source = "source"
Debian/URI.hs view
@@ -14,8 +14,11 @@ import Data.Maybe (catMaybes) import Network.URI import System.Directory (getDirectoryContents)-import System.Unix.Process (collectStdout)-import System.Unix.Progress (lazyCommandF)+import System.Exit (ExitCode(..))+import System.Process (showCommandForUser)+import System.Unix.Process (readProcessWithExitCode)+-- import System.Unix.LazyProcess (collectStdout)+-- import System.Unix.Progress (lazyCommandF) import Text.Regex (mkRegex, matchRegex) uriToString' :: URI -> String@@ -28,25 +31,38 @@ type URIString = String fileFromURI :: URI -> IO (Either SomeException L.ByteString)-fileFromURI uri =+fileFromURI uri = try $ case (uriScheme uri, uriAuthority uri) of- ("file:", Nothing) -> try (L.readFile (uriPath uri))+ ("file:", Nothing) -> L.readFile (uriPath uri) -- ("ssh:", Just auth) -> cmdOutput ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " cat " ++ show (uriPath uri))- ("ssh:", Just auth) -> try (lazyCommandF ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " cat " ++ show (uriPath uri)) L.empty >>=- return . fst . collectStdout)- _ -> try (lazyCommandF ("curl -s -g '" ++ uriToString' uri ++ "'") L.empty >>=- return . fst . collectStdout)+ ("ssh:", Just auth) ->+ do let cmd = "ssh"+ args = [uriUserInfo auth ++ uriRegName auth ++ uriPort auth, "cat", uriPath uri]+ (code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ case code of+ ExitFailure _ -> error (showCommandForUser cmd args ++ " -> " ++ show code)+ _ -> return out+ _ ->+ do let cmd = "curl"+ args = ["-s", "-g", uriToString' uri]+ (_code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ return out fileFromURIStrict :: URI -> IO (Either SomeException B.ByteString)-fileFromURIStrict uri =+fileFromURIStrict uri = try $ case (uriScheme uri, uriAuthority uri) of- ("file:", Nothing) -> try (B.readFile (uriPath uri))+ ("file:", Nothing) -> B.readFile (uriPath uri) -- ("ssh:", Just auth) -> cmdOutputStrict ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " cat " ++ show (uriPath uri))- ("ssh:", Just auth) -> try (lazyCommandF ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " cat " ++ show (uriPath uri)) L.empty >>=- return . B.concat . L.toChunks . fst . collectStdout)- _ -> try (lazyCommandF ("curl -s -g '" ++ uriToString' uri ++ "'") L.empty >>=- return . B.concat . L.toChunks . fst . collectStdout)- -- _ -> cmdOutputStrict ("curl -s -g '" ++ uriToString' uri ++ "'")+ ("ssh:", Just auth) -> do+ let cmd = "ssh"+ args = [uriUserInfo auth ++ uriRegName auth ++ uriPort auth, "cat", uriPath uri]+ (_code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ return . B.concat . L.toChunks $ out+ _ -> do+ let cmd = "curl"+ args = ["-s", "-g", uriToString' uri]+ (_code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ return . B.concat . L.toChunks $ out -- | Parse the text returned when a directory is listed by a web -- server. This is currently only known to work with Apache.@@ -62,11 +78,16 @@ dirFromURI :: URI -> IO (Either SomeException [String])-dirFromURI uri =+dirFromURI uri = try $ case (uriScheme uri, uriAuthority uri) of- ("file:", Nothing) -> try (getDirectoryContents (uriPath uri))- -- ("ssh:", Just auth) -> cmdOutput ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " ls -1 " ++ uriPath uri) >>=- ("ssh:", Just auth) -> try (lazyCommandF ("ssh " ++ uriUserInfo auth ++ uriRegName auth ++ uriPort auth ++ " ls -1 " ++ uriPath uri) L.empty >>=- return . lines . L.unpack . fst . collectStdout)- -- _ -> cmdOutput ("curl -s -g '" ++ uriToString' uri ++ "/'") >>= return . either Left (Right . webServerDirectoryContents)- _ -> try (lazyCommandF ("curl -s -g '" ++ uriToString' uri ++ "/'") L.empty >>= return . webServerDirectoryContents . fst . collectStdout)+ ("file:", Nothing) -> getDirectoryContents (uriPath uri)+ ("ssh:", Just auth) ->+ do let cmd = "ssh"+ args = [uriUserInfo auth ++ uriRegName auth ++ uriPort auth, "ls", "-1", uriPath uri]+ (_code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ return . lines . L.unpack $ out+ _ ->+ do let cmd = "curl"+ args = ["-s", "-g", uriToString' uri]+ (_code, out, _err) <- readProcessWithExitCode cmd args id L.empty+ return . webServerDirectoryContents $ out
Debian/Util/FakeChanges.hs view
@@ -4,6 +4,8 @@ --import Control.Arrow import Control.Exception import Control.Monad hiding (mapM)+import qualified Data.ByteString.Lazy.Char8 as L+import qualified Data.Digest.Pure.MD5 as MD5 import Data.Foldable import Data.List hiding (concat, foldr, all) import Data.Maybe @@ -12,6 +14,7 @@ import Data.Traversable import Debian.Time import System.Environment+import System.FilePath import System.Posix.Files import Text.Regex.TDFA import Prelude hiding (catch, concat, foldr, all, mapM)@@ -19,8 +22,8 @@ import Debian.Control import qualified Debian.Deb as Deb-import System.Unix.FilePath-import System.Unix.Misc+-- import System.Unix.FilePath+-- import System.Unix.Misc data Error@@ -166,17 +169,17 @@ mkFileLine :: FilePath -> IO String mkFileLine fp | ".deb" `isSuffixOf` fp =- do sum <- md5sum fp+ do sum <- L.readFile fp >>= return . show . MD5.md5 size <- liftM fileSize $ getFileStatus fp (Control (p:_)) <- Deb.fields fp return $ concat [ " ", sum, " ", show size, " ", fromMaybe "unknown" (fieldValue "Section" p), " "- , fromMaybe "optional" (fieldValue "Priority" p), " ", (baseName fp)+ , fromMaybe "optional" (fieldValue "Priority" p), " ", (takeBaseName fp) ] | otherwise =- do sum <- md5sum fp + do sum <- L.readFile fp >>= return . show . MD5.md5 size <- liftM fileSize $ getFileStatus fp return $ concat [ " ", sum, " ", show size, " ", "unknown", " "- , "optional"," ", (baseName fp)+ , "optional"," ", (takeBaseName fp) ] -- more implementations can be found at:@@ -190,7 +193,7 @@ -- move to different library debNameSplit :: String -> Either FilePath (String, String, String) debNameSplit fp =- case (baseName fp) =~ "^(.*)_(.*)_(.*).deb$" of+ case (takeBaseName fp) =~ "^(.*)_(.*)_(.*).deb$" of [[_, name, version, arch]] -> Right (name, version, arch) _ -> Left fp
Debian/Version/Internal.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveDataTypeable #-} module Debian.Version.Internal ( DebianVersion(..) , Numeric(..)@@ -5,26 +6,30 @@ , Found(..) ) where++import Data.Data (Data)+import Data.Typeable (Typeable)+ -- Currently we store the original version string in the data-type so -- that we can faithfully reproduce it quickly. Currently we do not -- have any way to modify a version number -- so this works fine. May -- have to change later. data DebianVersion- = DebianVersion String (Found Int, NonNumeric, Found NonNumeric)+ = DebianVersion String (Found Int, NonNumeric, Found NonNumeric) deriving (Data, Typeable) data NonNumeric = NonNumeric String (Found Numeric)- deriving Show+ deriving (Show, Data, Typeable) data Numeric = Numeric Int (Maybe NonNumeric)- deriving Show+ deriving (Show, Data, Typeable) data Found a = Found { unFound :: a } | Simulated { unFound :: a }- deriving Show+ deriving (Show, Data, Typeable) instance (Eq a) => Eq (Found a) where f1 == f2 = (unFound f1) == (unFound f2)
Test/Dependencies.hs view
@@ -101,26 +101,26 @@ , packageVersion = packageVersionParagraph } where- getName :: [(String, String)] -> String- getName p = case lookup "Package" p of Nothing -> error "Missing Package field" ; (Just n) -> stripWS n+ getName :: [(String, String)] -> BinPkgName+ getName p = case lookup "Package" p of Nothing -> error "Missing Package field" ; (Just n) -> BinPkgName (PkgName (stripWS n)) conflicts' :: [(String, String)] -> Relations conflicts' p = case lookup "Conflicts" p of Nothing -> [] (Just c) -> either (error . show) id (parseRelations c) - providesF :: [(String, String)] -> [String]+ providesF :: [(String, String)] -> [BinPkgName] providesF p = case lookup "Provides" p of Nothing -> [] (Just v) ->- parseCommaList v+ map (BinPkgName . PkgName) $ parseCommaList v parseCommaList :: String -> [String] parseCommaList str = words $ map (\c -> if c == ',' then ' ' else c) str -packageVersionParagraph :: [(String, String)] -> (String, DebianVersion) +packageVersionParagraph :: [(String, String)] -> (BinPkgName, DebianVersion) packageVersionParagraph p = case lookup "Package" p of Nothing -> error $ "Could not find Package in " ++ show p@@ -128,7 +128,7 @@ case lookup "Version" p of Nothing -> error $ "Could not find Package in " ++ show p (Just v) -> - (stripWS n, parseDebianVersion v)+ (BinPkgName (PkgName (stripWS n)), parseDebianVersion v) mapSnd :: (b -> c) -> [(a,b)] -> [(a,c)] mapSnd f = map (second f)
− cbits/gwinsz.h
@@ -1,1 +0,0 @@-unsigned long c_get_window_size(void);
debian.cabal view
@@ -1,5 +1,5 @@ Name: debian-Version: 3.61+Version: 3.64 License: BSD3 License-File: debian/copyright Author: David Fox <dsf@seereason.com>, Jeremy Shaw <jeremy@seereason.com>, Clifford Beshers <beshers@seereason.com>@@ -20,10 +20,29 @@ Description: True if Cabal >= 1.9 is available Library- Build-Depends: base >= 4 && < 5, bytestring, containers, directory,- filepath, mtl, network, old-locale, parsec >= 2 && <4, pretty, process,- regex-tdfa, regex-compat, time, unix, bzlib, HaXml >= 1.20, Unixutils >= 1.41, zlib, HUnit,- utf8-string+ Build-Depends:+ base >= 4 && < 5,+ bytestring,+ bzlib,+ containers,+ directory,+ filepath,+ HaXml >= 1.20,+ HUnit,+ mtl,+ network,+ old-locale,+ parsec >= 2 && <4,+ pretty,+ process,+ pureMD5,+ regex-compat,+ regex-tdfa,+ time,+ unix,+ Unixutils >= 1.50,+ utf8-string,+ zlib ghc-options: -W -Wall -O2 if flag(cabal19) build-depends: Cabal >= 1.9
− debian/apt-get-build-depends.1
@@ -1,17 +0,0 @@-.TH APT-GET-BUILD-DEPENDS 1 "May 10, 2010"--.SH NAME-apt-get-build-depends \- apt-get install build depends--.SH SYNOPSIS-.B apt-get-build-depends-.RI --.SH DESCRIPTION-apt-get-build-depends parse the Build-Depends{-Indep} lines from a-debian/control file and apt-get installs the required packages.--.SH AUTHOR-This manual page was originally written by Erik de Castro Lopo -<erikd@mega-nerd.com> for the Debian GNU/Linux system (but may be used by -others).
− debian/changelog
@@ -1,121 +0,0 @@-haskell-debian (3.61) unstable; urgency=low-- * Uploading to hackage.- * Remove crypto++ dependency (it was a mistake.)- * Add optimization flag to ghc-options- * Reference seereason darcs repo-- -- David Fox <dsf@seereason.com> Thu, 06 Oct 2011 09:04:38 -0700--haskell-debian (3.60) unstable; urgency=low-- * Replace bogus Show instances in Debian.Relation.Common with pretty- printing functions.- * Change cabal category from System to Debian (to join the dpkg package)- * Fix some of the compiler warnings.- * Change the Show instances in Debian.Version into pretty printing- functions too.-- -- David Fox <dsf@seereason.com> Sun, 25 Sep 2011 07:33:25 -0700--haskell-debian (3.59) unstable; urgency=low-- * Move the cabal-debian program into a separate pacakge.-- -- David Fox <dsf@seereason.com> Sun, 18 Sep 2011 06:43:36 -0700--haskell-debian (3.58-0.2) unstable; urgency=low-- * Remove the --deb-name option, all the package name special cases need- to be encoded in the Distribution.Package.Debian.Bundled.debianName function- so that we can fix both the names for the package we are building and- the names of its dependencies.-- -- David Fox <dsf@seereason.com> Thu, 25 Aug 2011 10:58:11 -0700--haskell-debian (3.58-0.1) unstable; urgency=low-- * Add --deb-name option, which sets the part of the package name between- the prefix libghc- and the suffix -dev.- * Add --epoch- * Add --deb-version-- -- David Fox <dsf@seereason.com> Wed, 24 Aug 2011 20:45:33 -0700--haskell-debian (3.58) unstable; urgency=low-- * Add a --ghc-version option to specify what the ghc version is in the- build environment, in case it is different from the one where the- autobuilder is being run. This affects what packages cabal-debian- thinks are built into the compiler. I have non-working code to actually- look in the environment for this information, but it depends on having- the compiler already installed there.- * Greatly sped-up cabal-debian.- * Add --build-dep to specify extra build dependencies.- * Generate a haskell-packagename-utils deb with all the executables, rather- than one deb per executable.-- -- David Fox <dsf@seereason.com> Fri, 19 Aug 2011 08:34:36 -0700--haskell-debian (3.57) unstable; urgency=low-- * Re-order generated dependencies so we are more likely to build- with newer packages installed.-- -- David Fox <dsf@seereason.com> Tue, 16 Aug 2011 19:04:29 -0700--haskell-debian (3.56-1) unstable; urgency=low-- * I created a new repository by importing the sid version of- haskell-debian-3.55 and then applying my patches. This is because- I don't understand why Marco's repository is so different from the- code in sid. At some point we will get this all sorted out.-- -- David Fox <dsf@seereason.com> Tue, 16 Aug 2011 13:00:15 -0700--haskell-debian (3.55-2) unstable; urgency=low-- * Build against parsec 3-- -- Joachim Breitner <nomeata@debian.org> Mon, 13 Jun 2011 18:13:10 +0200--haskell-debian (3.55-1) unstable; urgency=low-- * Use ghc instead of ghc6- * control: Standards-Version: Bump, no changes needed.- * control: haskell-debian-utils: Adds Recommends: apt-file.- * New upstream version.- * patches/dont-build-teste.patch: Update patch to new upstream- version.- * control: Update dependency on haxml to 1.20.*.- * control: Depends on utf8-string.-- -- Marco Túlio Gontijo e Silva <marcot@debian.org> Fri, 03 Jun 2011 22:49:23 -0300--haskell-debian (3.47-3) unstable; urgency=low-- * Re-add dont-build-tests.patch, lost in the previous upload -- -- Joachim Breitner <nomeata@debian.org> Thu, 24 Jun 2010 19:33:30 +0200--haskell-debian (3.47-2) unstable; urgency=low-- [ Erik de Castro Lopo ]- * debian/control: Fix lintian warnings.- * Add man pages for apt-get-build-depends, cabal-debian, debian-report and- fakechanges.- * Add libghc6-debian-doc.doc-base.- * Move installation of binaries and man pages from rules file to new file- haskell-debian-utils.install.-- [ Joachim Breitner ]- * Adjust copyright file per FTP master request. - * Bump haskell-regex-tdfa dependency-- -- Joachim Breitner <nomeata@debian.org> Thu, 24 Jun 2010 09:47:55 +0200--haskell-debian (3.47-1) unstable; urgency=low-- * Initial release.-- -- Joachim Breitner <nomeata@debian.org> Sun, 09 May 2010 19:08:20 +0200
− debian/changelog.pre-debian
@@ -1,625 +0,0 @@-haskell-debian (3.53) unstable; urgency=low-- * Changes for unixutils-1.30- * Changes for unixutils-1.31-- -- David Fox <dsf@seereason.com> Sun, 26 Dec 2010 09:12:20 -0800--haskell-debian (3.52) unstable; urgency=low-- * Update to work with Cabal 1.10, shipped with ghc7.-- -- David Fox <dsf@seereason.com> Sat, 20 Nov 2010 07:54:52 -0800--haskell-debian (3.51) unstable; urgency=low-- * Remove dependency on haskell-utils, it is no longer in the repository.- * Change the doc package prefix generated by cabal-debian from haskell-- to libghc6-, this is the prefix chosen by the Debian packaging team.- and I believe that if haskell- is used the documentation ends up in- a directory in /usr/share/doc with the libghc6- prefix anyway.-- -- David Fox <dsf@seereason.com> Mon, 19 Jul 2010 10:37:39 -0700--haskell-debian (3.50) unstable; urgency=low-- * Switch back to regex-tdfa, regex-posix can't match extended ASCII- like "\250" =~ "[\249\250]"-- -- David Fox <dsf@seereason.com> Sun, 18 Jul 2010 22:34:13 +0100--haskell-debian (3.49) unstable; urgency=low-- * Add Show instances.-- -- David Fox <dsf@seereason.com> Fri, 16 Jul 2010 14:35:15 -0700--haskell-debian (3.48) unstable; urgency=low-- * Switch from regex-tdfa to regex-posix to avoid this failure, which- seems to have appeared going from 1.1.2 to 1.1.3:- "Explict error in module Text.Regex.TDFA.NewDFA : compressOrbit,1"-- -- David Fox <dsf@seereason.com> Fri, 16 Jul 2010 10:43:13 -0700--haskell-debian (3.47) unstable; urgency=low-- * require HaXml < 1.14-- -- Jeremy Shaw <jeremy@seereason.com> Wed, 05 May 2010 14:23:26 -0500--haskell-debian (3.46) unstable; urgency=low-- * Relax the Cabal >= 1.9 requirement by conditionalizing the code- that is affected by the change.- * Remove the applicative-extras dependency, instead of Failing a- use Either [String] a.- * Include Joachim Breitner's fixes for the Relation Ord instance.- * Do case insensitive field name comparisons in Debian.Control.-- -- David Fox <dsf@seereason.com> Tue, 04 May 2010 11:55:24 -0700--haskell-debian (3.45) unstable; urgency=low-- * Don't require targets to be Show instance in GenBuildDeps.buildable.- * Eliminate use of OldException.-- -- David Fox <dsf@seereason.com> Fri, 19 Feb 2010 06:47:04 -0800--haskell-debian (3.44) unstable; urgency=low-- * Add a rule to debian/rules to install the executables.-- -- David Fox <dsf@seereason.com> Thu, 18 Feb 2010 12:16:18 -0800--haskell-debian (3.43) unstable; urgency=low-- * Add a strict version of fileFromURI.- * Catch errors thrown by hGetContents when reading control files-- -- David Fox <dsf@seereason.com> Sat, 02 Jan 2010 12:29:45 -0800--haskell-debian (3.42) unstable; urgency=low-- * Fix signature regex so we always split at the first pair of spaces.-- -- David Fox <dsf@seereason.com> Tue, 29 Dec 2009 19:25:27 -0800--haskell-debian (3.41) unstable; urgency=low-- * Use Text.Regex.TDFA for parsing changelog instead of Text.Regex.Compat, it- can handle Unicode.- * Run unit tests during build, add some changelog unit tests.-- -- David Fox <dsf@seereason.com> Tue, 29 Dec 2009 12:22:40 -0800--haskell-debian (3.40) unstable; urgency=low-- * Remove the now unused Extra.CIO and Debian.Extra.CIO modules-- -- David Fox <dsf@seereason.com> Mon, 14 Sep 2009 09:41:52 -0700--haskell-debian (3.39) unstable; urgency=low-- * Remove dependency on Extra- * Remove debian directory from .cabal-- -- Jeremy Shaw <jeremy@seereason.com> Wed, 09 Sep 2009 11:57:03 -0500--haskell-debian (3.38) unstable; urgency=low-- * Use parsec 3-- -- Jeremy Shaw <jeremy@seereason.com> Tue, 28 Jul 2009 19:12:03 -0500--haskell-debian (3.37) unstable; urgency=low-- * Escape the vendor tag before embedding it in a regular expression.- (I wrote an escapeForRegex that only escapes +, the character I want- to use right now. This function should be available somewhere in the- haskell standard libraries, right?)- * Moved the VersionPolicy module to haskell-debian-repo.-- -- David Fox <dsf@seereason.com> Thu, 23 Jul 2009 07:38:00 -0700--haskell-debian (3.36) unstable; urgency=low-- * Make the changelog parser more liberal, allow a tab character at- the beginning of a text line instead of two spaces. This parses- the new changelog entry for hscolour.-- -- David Fox <dsf@seereason.com> Tue, 21 Jul 2009 06:45:24 -0700--haskell-debian (3.35) unstable; urgency=low-- * removed dependencies on Extra.HaXml- * Updated to base >= 4 && < 5- * Fixed test suite-- -- Jeremy Shaw <jeremy@seereason.com> Wed, 01 Jul 2009 09:48:00 -0500--haskell-debian (3.34) unstable; urgency=low-- * cabal-debian: move -doc packages to Build-Depends-Indep- * cabal-debian: properly nub Build-Depends and Build-Depends-Indep-- -- Jeremy Shaw <jeremy@seereason.com> Sun, 03 May 2009 12:15:52 -0500--haskell-debian (3.33) unstable; urgency=low-- * cabal-debian: Setion: libdevel -> haskell-- -- Jeremy Shaw <jeremy@seereason.com> Thu, 16 Apr 2009 16:22:35 -0500--haskell-debian (3.32) unstable; urgency=low-- * Add fields to Debian.Changes.ChangedFileSpec for SHA1 and SHA256- checksums.-- -- David Fox <dsf@seereason.com> Fri, 03 Apr 2009 07:14:59 -0700--haskell-debian (3.31) unstable; urgency=low-- * update to use newer haskell-devscripts which includes hlibrary.mk- * change libghc6-*-doc to haskell-*-doc- * move haskell-*-doc to Section: doc- * build haskell-*-doc for Architecture 'all' instead of 'any'- * make ghc6-doc and haddock Build-Depends-Indep- * update Standards-Version to 3.8.1- * depend on cdbs and haskell-devscripts instead of haskell-cdbs- * only use one space at the beginning of lines in the long description- * add ${misc:Depends} to Depends lines-- -- Jeremy Shaw <jeremy@seereason.com> Mon, 23 Mar 2009 20:18:41 -0500--haskell-debian (3.30) unstable; urgency=low-- * Move the modules for dealing with the repository into a new package- named haskell-debian-repo. The cabal-debian tool remains in this- package, so this split means that the repo package can change without- triggering massive rebuilding due to build dependencies on- cabal-debian.-- -- David Fox <dsf@seereason.com> Wed, 18 Feb 2009 06:36:25 -0800--haskell-debian (3.29) unstable; urgency=low-- * Add System.Chroot to list of exported modules- * Reduce number of modules loaded by CabalDebian.-- -- David Fox <dsf@seereason.com> Tue, 10 Feb 2009 17:06:47 -0800--haskell-debian (3.28) unstable; urgency=low-- * Add System.Chroot.useEnv, and use it to allow contact with the ssh- agent from inside of changeroots.-- -- David Fox <dsf@seereason.com> Mon, 09 Feb 2009 11:18:59 -0800--haskell-debian (3.27) unstable; urgency=low-- * Added apt-get-build-deps. not librarized yet :(-- -- Jeremy Shaw <jeremy@seereason.com> Fri, 06 Feb 2009 18:52:36 -0600--haskell-debian (3.26) unstable; urgency=low-- * Improve the code that decides whether the sources.list has changed,- to avoid recreating the build environment as often.-- -- David Fox <dsf@seereason.com> Thu, 05 Feb 2009 08:56:32 -0800--haskell-debian (3.25) unstable; urgency=low-- * Use State monad instead of RWS monad for AptIO- * Rename IOState to AptState-- -- David Fox <dsf@seereason.com> Wed, 04 Feb 2009 09:34:24 -0800--haskell-debian (3.24) unstable; urgency=low-- * Use Data.Time instead of System.Time- * Fix code to compute the elapsed time for the dpkg-buildpackage.- * Restore some generated dependencies that got dropped out of- cabal-debian.-- -- David Fox <dsf@seereason.com> Sat, 31 Jan 2009 08:45:51 -0800--haskell-debian (3.23) unstable; urgency=low-- * Eliminate the use of EnvPath in most places, just use a regular- path instead. There were very few places where we actually were- inside a changeroot.-- -- David Fox <dsf@seereason.com> Thu, 29 Jan 2009 16:48:23 -0800--haskell-debian (3.22) unstable; urgency=low-- * cabal-debian now has autodetection of ghc6 bundled packages-- -- Jeremy Shaw <jeremy@seereason.com> Thu, 29 Jan 2009 15:26:25 -0600--haskell-debian (3.21) unstable; urgency=low-- * Don't write out postinst and postrm for the doc package, they are- now automatically added by haskell-cdbs.-- -- David Fox <dsf@seereason.com> Tue, 27 Jan 2009 10:14:20 -0800--haskell-debian (3.20) unstable; urgency=low-- * Modify the buildable function in GenBuildDeps so it returns more- info about the ready packages and what packages each one blocks.-- -- David Fox <dsf@seereason.com> Tue, 27 Jan 2009 06:55:39 -0800--haskell-debian (3.19) unstable; urgency=low-- * Make cabal-debian depend on haskell-cdbs, it used to be the opposite.-- -- David Fox <dsf@seereason.com> Sun, 25 Jan 2009 15:22:41 -0800--haskell-debian (3.18) unstable; urgency=low-- * Modify cabal-debian to it creates debianizations that use the new- haskell-cdbs package instead of our modified haskell-devscripts with- the cdbs file hlibrary.mk added in.- * Have cabal-debian explain what changes it is making to the dependency- list.-- -- David Fox <dsf@seereason.com> Sat, 24 Jan 2009 07:27:47 -0800--haskell-debian (3.17) unstable; urgency=low-- * Have cabal-debian --substvar print its result to stderr.-- -- David Fox <dsf@seereason.com> Fri, 23 Jan 2009 10:33:48 -0800--haskell-debian (3.16) unstable; urgency=low-- * Back out register/unregister stuff, just have cabal-debian die if the- package doesn't have a library section.-- -- David Fox <dsf@seereason.com> Thu, 22 Jan 2009 15:33:43 -0800--haskell-debian (3.15) unstable; urgency=low-- * Don't leave package registered after computing lbi.-- -- David Fox <dsf@seereason.com> Thu, 22 Jan 2009 14:19:23 -0800--haskell-debian (3.14) unstable; urgency=low-- * Fix a bug that resulted in a fromJust Nothing error.-- -- David Fox <dsf@seereason.com> Thu, 22 Jan 2009 09:59:16 -0800--haskell-debian (3.13) unstable; urgency=low-- * Add the cabal-debian executable to this package to ease bootstrapping.-- -- David Fox <dsf@seereason.com> Fri, 16 Jan 2009 06:41:40 -0800--haskell-debian (3.12) unstable; urgency=low-- * Export some functions and types from Debian.Apt.Index that were- already being used by other applications- * Allow relation parser to skip empty relations like such as: a, ,c-- -- Jeremy Shaw <jeremy@n-heptane.com> Fri, 09 Jan 2009 18:22:09 -0600--haskell-debian (3.11) unstable; urgency=low-- * Gather code to retrieve the text an URI points to into the Debian.URI- module.-- -- David Fox <dsf@seereason.com> Tue, 04 Nov 2008 13:53:33 -0800--haskell-debian (3.10) unstable; urgency=low-- * Change name and arch of doc package.-- -- David Fox <dsf@seereason.com> Sat, 20 Sep 2008 12:07:38 -0700--haskell-debian (3.9) unstable; urgency=low-- * Compute exactly which packages participate in dependency cycles.-- -- David Fox <dsf@seereason.com> Mon, 18 Aug 2008 12:42:56 -0700--haskell-debian (3.8) unstable; urgency=low-- * Don't add an extra newline at the end of the Files section when- editing the .changes file.-- -- David Fox <dsf@seereason.com> Mon, 21 Jul 2008 10:57:49 -0700--haskell-debian (3.7) unstable; urgency=low-- * Eliminate all direct uses of TIO, we always use CIO m => so- that all functions can be called from the regular IO monad.-- -- David Fox <dsf@seereason.com> Sat, 19 Jul 2008 10:27:49 -0700--haskell-debian (3.6) unstable; urgency=low-- * Remove useless arguments from insertRelease.- * Replace debianization-- -- David Fox <dsf@seereason.com> Tue, 01 Jul 2008 10:41:22 -0700--haskell-debian (3.5) unstable; urgency=low-- * Debianization generated by cabal-debian-- -- David Fox <dsf@seereason.com> Sat, 28 Jun 2008 15:49:07 -0700--haskell-debian (3.4) unstable; urgency=low-- * Even correcter code for doing Relax-Depends. The relaxDeps function- is now seperate from the other build depenency functions, which makes- things a bit simpler and easier to document.-- -- David Fox <dsf@seereason.com> Wed, 18 Jun 2008 21:00:36 +0000--haskell-debian (3.3) unstable; urgency=low-- * Add code to correctly implement Relax-Depends for non-global- dependencies.-- -- David Fox <dsf@seereason.com> Sat, 31 May 2008 07:31:15 +0000--haskell-debian (3.2) unstable; urgency=low-- * Redo the buildable function in GenBuildDeps.- * Improve message from OSImage.updateLists.-- -- David Fox <dsf@seereason.com> Sat, 24 May 2008 13:06:09 +0000--haskell-debian (3.1-1) unstable; urgency=low-- * Version number follies.-- -- David Fox <dsf@seereason.com> Thu, 22 May 2008 16:18:47 -0700--haskell-debian (3.1) unstable; urgency=low-- * Re-worked the build dependency computation-- -- David Fox <dsf@seereason.com> Thu, 22 May 2008 10:59:22 -0700--haskell-debian (3.0) unstable; urgency=low-- * Re-organization of module heirarchy.-- -- David Fox <dsf@seereason.com> Mon, 19 May 2008 12:47:25 -0700--haskell-debian (2.28) unstable; urgency=low-- * Eliminate use of haskell-ugly library.-- -- David Fox <dsf@seereason.com> Wed, 14 May 2008 12:30:40 -0700--haskell-debian (2.27) unstable; urgency=low-- * Changes for switch to lazy bytestrings in haskell-unixutils.-- -- David Fox <dsf@seereason.com> Tue, 06 May 2008 05:52:51 -0700--haskell-debian (2.26) unstable; urgency=low-- * Improve error report from "Missing control file or changelog"-- -- David Fox <dsf@seereason.com> Mon, 05 May 2008 05:59:27 -0700--haskell-debian (2.25) unstable; urgency=low-- * Packaging changes for haskell-devscripts 0.6.10.-- -- David Fox <dsf@seereason.com> Sat, 29 Mar 2008 10:25:54 -0700--haskell-debian (2.24) unstable; urgency=low-- * New version of dupload reads both /etc/dupload.conf and ~/.dupload.conf, so- we have to explicitly unset $preupload in ~/.dupload.conf.-- -- David Fox <dsf@seereason.com> Tue, 25 Mar 2008 05:49:08 -0700--haskell-debian (2.23) unstable; urgency=low-- * Fix a divide by zero error in Debian.Shell. This should also improve- the behavior of the code that outputs one dot per 128 characters of- shell command output.-- -- David Fox <dsf@seereason.com> Wed, 12 Mar 2008 16:55:59 +0000--haskell-debian (2.22) unstable; urgency=low-- * Add a chars/dot argument to Shell.dotOutput- * Moved some functions from Shell to haskell-unixutils- * Moved TIO module to haskell-extra-- -- David Fox <dsf@seereason.com> Sun, 02 Mar 2008 10:14:13 -0800--haskell-debian (2.21) unstable; urgency=low-- * Change some writeFile calls to avoid lazyness in evaluating the- second argument, which appears to lead to locked file errors.-- -- David Fox <dsf@seereason.com> Sun, 24 Feb 2008 11:06:53 -0800--haskell-debian (2.20) unstable; urgency=low-- * Message Improvements- * Discard duplicate dependency relations- * Fix rfc822DateFormat-- -- Jeremy Shaw <jeremy@n-heptane.com> Wed, 20 Feb 2008 13:34:34 -0800--haskell-debian (2.19) unstable; urgency=low-- * Added more functions for working with index files-- -- Jeremy Shaw <jeremy@n-heptane.com> Tue, 19 Feb 2008 16:07:46 -0800--haskell-debian (2.18) unstable; urgency=low-- * Hack: Debian.Local.Insert.addPackagesToIndexes work-around for optimizer bug- * Debian.Package: use controlFromIndex instead of calling zcat-- -- Jeremy Shaw <jeremy@n-heptane.com> Mon, 11 Feb 2008 23:08:30 -0800--haskell-debian (2.17) unstable; urgency=low-- * TIO module fixes and cleanups.-- -- David Fox <dsf@seereason.com> Thu, 07 Feb 2008 05:45:00 -0800--haskell-debian (2.16) unstable; urgency=low-- * Add setRepoMap to install cached repository info- * Print more info about what happened when a repository appears not to exist.-- -- David Fox <ddssff@gmail.com> Wed, 06 Feb 2008 16:00:45 -0800--haskell-debian (2.15) unstable; urgency=low-- * Fix bug in Debian.VersionPolicy- * Split a simple TIO monad out of the AptIO monad.- * Simplify Repository type, eliminate parameterized Release etc.- * Improve type safety of the SourcesList related types-- -- David Fox <ddssff@gmail.com> Wed, 06 Feb 2008 05:38:12 -0800--haskell-debian (2.14) unstable; urgency=low-- * Rewrite of Debian.VersionPolicy.- * Run unit tests during build-- -- David Fox <ddssff@gmail.com> Mon, 28 Jan 2008 13:07:00 -0800--haskell-debian (2.13) unstable; urgency=low-- * Improvements in code currently used to compute the build dependencies.- This allows builds of packages which previously caused an combinatoric- explosion in memory and time use. The specific modifications are to- avoid making a huge list of all the solution candidates that failed,- and to put the relations into a normal form which only involves equals- dependencies on packages that are actually available for installation.- Finally, a bug in handling of architecture specific dependencies was- fixed which might have been causing the extremely long and fruitless- searches for some packages' build dependencies.-- -- David Fox <ddssff@gmail.com> Sat, 19 Jan 2008 19:28:32 +0000--haskell-debian (2.12) unstable; urgency=low-- * Add Debian.Apt.Dependecies and Debian.Apt.Package to debian.cabal-- -- Jeremy Shaw <jeremy.shaw@linspireinc.com> Fri, 18 Jan 2008 17:13:24 -0800--haskell-debian (2.11) unstable; urgency=low-- * Added trump detector- * Added code to find parents and siblings of a binary package from the- Packages/Sources files- * Packaging updates-- -- Jeremy Shaw <jeremy.shaw@linspireinc.com> Fri, 14 Dec 2007 13:55:20 -0800--haskell-debian (2.10) unstable; urgency=low-- * Added new interface, Apt.Debian.Methods.fetch which allows the UI- portion of fetching (status, authentication), to be controlled by- providing a set of callback functions.-- -- Jeremy Shaw <jeremy.shaw@linspireinc.com> Tue, 20 Nov 2007 14:07:43 -0800--haskell-debian (2.9) unstable; urgency=low-- * Add caching of loaded package indexes based on the path and the- file status of the cached index file. Also splits Debian.Types- into several modules.-- -- David Fox <dsf@seereason.org> Fri, 9 Nov 2007 11:05:11 -0800--haskell-debian (2.8) unstable; urgency=low-- * Last version had bogus dependencies due to an unknown build error.- Make loading of package indexes less lazy in an attempt to reduce- memory usage.-- -- David Fox <dsf@seereason.org> Wed, 7 Nov 2007 10:54:27 -0800--haskell-debian (2.7) unstable; urgency=low-- * Make loading of package indexes lazy.-- -- David Fox <dsf@seereason.org> Mon, 22 Oct 2007 11:11:34 -0700--haskell-debian (2.6) unstable; urgency=low-- * Pass --immediate-configure-false to build-env so we can create- environments for gutsy, lenny, and sid.-- -- David Fox <dsf@seereason.org> Sat, 20 Oct 2007 16:17:59 -0700--haskell-debian (2.5) unstable; urgency=low-- * Reduce amount of apt-get updating that occurs.-- -- David Fox <ddssff@gmail.com> Sat, 20 Oct 2007 13:50:25 +0000--haskell-debian (2.4) unstable; urgency=low-- * Fix parsing of version tags in VersionPolicy. It was always failing- and therefore not understanding versions we had generated.-- -- David Fox <ddssff@gmail.com> Sat, 13 Oct 2007 04:44:39 -0700--haskell-debian (2.3) unstable; urgency=low-- * The EnvPath and EnvRoot types had show methods that were not- invertable by read. Now they use deriving Show, and use rootPath- and the new outsidePath to convert EnvRoot and EnvPath to the- FilePath type. This is a big looking change, but safe.- * Replace code that looked at the "Package" and "Version" fields- of a parsed control file with calls to packageName and- packageVersion, which just returns values already computed and- saved in the Package object.- * Use EnvPath instead of FilePath in places where it makes sense, such- as the copyDebianBuildTree and other places in Debian.SourceTree.- This change propagated down in various places, and the cutoff may be- a little out of whack in some places, but it is all typesafe (and- therefore wonderful?)-- -- David Fox <ddssff@gmail.com> Thu, 11 Oct 2007 15:43:03 +0000--haskell-debian (2.2) unstable; urgency=low-- * Fix a bug in parsing of dependency relations when there is- whitespace after a right square brace.-- -- David Fox <ddssff@gmail.com> Tue, 9 Oct 2007 21:00:24 +0000--haskell-debian (2.1) unstable; urgency=low-- * Fix show method of SliceList, the elements need to be- terminated by newlines.-- -- David Fox <ddssff@gmail.com> Fri, 5 Oct 2007 00:11:33 -0700--haskell-debian (2.0) unstable; urgency=low-- * Change Apt. to Debian.- * Added Debian.Apt.Methods- * Added Debian.Deb- * Added Debian.Time-- -- Jeremy Shaw <jeremy.shaw@linspire.com> Wed, 19 Sep 2007 15:14:10 -0700--haskell-apt (1.0) unstable; urgency=low-- * Initial Debian package.-- -- David Fox <ddssff@gmail.com> Tue, 18 Sep 2007 09:33:24 -0700
− debian/compat
@@ -1,1 +0,0 @@-7
− debian/control
@@ -1,135 +0,0 @@-Source: haskell-debian-Section: haskell-Priority: extra-Maintainer: Debian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>-Uploaders: Joachim Breitner <nomeata@debian.org>-Build-Depends: debhelper (>= 7)- , cdbs- , haskell-devscripts (>= 0.7)- , ghc- , ghc-prof- , libghc-mtl-dev- , libghc-mtl-prof- , libghc-parsec3-dev- , libghc-parsec3-prof- , libghc-regex-compat-dev- , libghc-regex-compat-prof- , libghc-regex-tdfa-dev (>= 1.1.3)- , libghc-regex-tdfa-prof- , libghc-bzlib-dev (>= 0.5.0.0-4)- , libghc-bzlib-prof- , libghc-haxml-prof (>= 1:1.20)- , libghc-unixutils-dev (>= 1.41)- , libghc-unixutils-prof (>= 1.41)- , libghc-zlib-dev- , libghc-zlib-prof- , libghc-network-dev- , libghc-network-prof- , libghc-utf8-string-dev- , libghc-utf8-string-prof,- , libcrypto++-dev-Build-Depends-Indep: ghc-doc- , libghc-mtl-doc- , libghc-parsec3-doc- , libghc-regex-compat-doc- , libghc-regex-tdfa-doc- , libghc-bzlib-doc- , libghc-haxml-doc (>= 1:1.20)- , libghc-unixutils-doc (>= 1.41)- , libghc-zlib-doc- , libghc-network-doc- , libghc-utf8-string-doc-Build-Conflicts:- libghc-parsec2-dev-Standards-Version: 3.9.2-Homepage: http://hackage.haskell.org/package/debian-Vcs-Darcs: http://darcs.debian.org/pkg-haskell/haskell-debian-Vcs-Browser: http://darcs.debian.org/cgi-bin/darcsweb.cgi?r=pkg-haskell/haskell-debian--Package: libghc-debian-dev-Architecture: any-Depends: ${haskell:Depends}- , ${shlibs:Depends}- , ${misc:Depends}-Recommends: ${haskell:Recommends}-Suggests: ${haskell:Suggests}-Provides: ${haskell:Provides}-Description: Haskell library for working with the Debian package system- This package provides a library for the Haskell programming language.- See http://www.haskell.org/ for more information on Haskell.- .- This library includes modules covering almost every aspect of the Debian- packaging system, including low level data types such as version numbers- and dependency relations, on up to the types necessary for computing and- installing build dependencies, building source and binary packages,- and inserting them into a repository.- .- This package contains the libraries compiled for GHC 6.--Package: libghc-debian-prof-Architecture: any-Depends: ${haskell:Depends}- , ${shlibs:Depends}- , ${misc:Depends}-Recommends: ${haskell:Recommends}-Suggests: ${haskell:Suggests}-Provides: ${haskell:Provides}-Description: Profiling library for working with the Debian package system- This package provides a library for the Haskell programming language,- compiled for profiling.- See http://www.haskell.org/ for more information on Haskell.- .- This library includes modules covering almost every aspect of the Debian- packaging system, including low level data types such as version numbers- and dependency relations, on up to the types necessary for computing and- installing build dependencies, building source and binary packages,- and inserting them into a repository.- .- This package contains the profiling libraries compiled for GHC 6.--Package: libghc-debian-doc-Section: doc-Architecture: all-Depends: ${misc:Depends}, ${haskell:Depends}-Recommends: ${haskell:Recommends}-Suggests: ${haskell:Suggests}-Description: Documentation for Debian package system library- This package provides the documentation for a library for the Haskell- programming language.- See http://www.haskell.org/ for more information on Haskell.- .- This library includes modules covering almost every aspect of the Debian- packaging system, including low level data types such as version numbers- and dependency relations, on up to the types necessary for computing and- installing build dependencies, building source and binary packages,- and inserting them into a repository.- .- This package contains the library documentation.--Package: haskell-debian-utils-Section: devel-Architecture: any-Depends: ghc, ${misc:Depends}, ${shlibs:Depends}-Recommends: apt-file-Description: Various helpers to work with Debian packages- This package contains tools shipped with the Haskell library “debian”:- .- * fakechanges:- Sometimes you have the .debs, .dsc, .tar.gz, .diff.gz, etc from a package- build, but not the .changes file. This package lets you create a fake- .changes file in case you need one.- .- * debian-report:- Analyze Debian repositories and generate reports about their contents and- relations. For example, a list of all packages in a distribution that are- trumped by another distribution.- .- * cabal-debian:- 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.- .- * apt-get-build-depends:- Tool which will parse the Build-Depends{-Indep} lines from debian/control- and apt-get install the required packages-
− debian/debian-report.1
@@ -1,20 +0,0 @@-.\"Original page generated by txt2man and then hacked extensively.-.TH DEBIAN-REPORT 1 "May 10, 2010"--.SH NAME-debian-report \- report differences in packages referenced by two sources.list-files.--.SH SYNOPSIS-.B debian-report-.RI "<old sources.list> <new sources.list>"--.SH DESCRIPTION-debian-report is given two Debain sources.list files as arguments and will-find all the packages referenced by the second which trump packages found in-the first.--.SH AUTHOR-This manual page was originally written by Erik de Castro Lopo -<erikd@mega-nerd.com> for the Debian GNU/Linux system (but may be used by -others).
− debian/fakechanges.1
@@ -1,17 +0,0 @@-.TH FAKECHANGES 1 "May 10, 2010"--.SH NAME-fakechanges \- reverse engineer a Debian .changes file.--.SH SYNOPSIS-.B fakechanges-.RI "[OPTION] files..."--.SH DESCRIPTION-fakechanges can reverse engineer the .changes file from the .debs, .dsc,- .tar.gz, .diff.gz, etc from a package build.--.SH AUTHOR-This manual page was originally written by Erik de Castro Lopo -<erikd@mega-nerd.com> for the Debian GNU/Linux system (but may be used by -others).
− debian/haskell-debian-utils.install
@@ -1,3 +0,0 @@-dist-ghc/build/apt-get-build-depends/apt-get-build-depends usr/bin/-dist-ghc/build/debian-report/debian-report usr/bin/-dist-ghc/build/fakechanges/fakechanges usr/bin/
− debian/haskell-debian-utils.manpages
@@ -1,1 +0,0 @@-debian/*.1
− debian/libghc-debian-doc.doc-base
@@ -1,13 +0,0 @@-Document: libghc-debian-doc-Title: Manual for the Haskell Debian library-Abstract: This library includes modules covering almost every aspect of the- Debian packaging system, including low level data types such as version- numbers and dependency relations, on up to the types necessary for computing- and installing build dependencies, building source and binary packages,- and inserting them into a repository.-Section: Programming--Format: HTML-Index: /usr/share/doc/libghc-debian-doc/html/doc-index.html-Files: /usr/share/doc/libghc-debian-doc/html/*.html- /usr/share/doc/libghc-debian-doc/html/src/*.html
− debian/patches/dont-build-tests.patch
@@ -1,26 +0,0 @@-Index: debian-3.55/debian.cabal-===================================================================---- debian-3.55.orig/debian.cabal 2011-06-03 21:02:01.000000000 -0300-+++ debian-3.55/debian.cabal 2011-06-03 21:03:43.000000000 -0300-@@ -22,7 +22,7 @@- Library- Build-Depends: base >= 4 && < 5, bytestring, containers, directory,- filepath, mtl, network, old-locale, parsec >= 2 && <4, pretty, process,-- regex-tdfa, regex-compat, time, unix, bzlib, HaXml == 1.20.*, Unixutils >= 1.32, zlib, HUnit,-+ regex-tdfa, regex-compat, time, unix, bzlib, HaXml == 1.20.*, Unixutils >= 1.32, zlib,- utf8-string- ghc-options: -W -Wall- if flag(cabal19)-@@ -65,11 +65,7 @@- Distribution.Package.Debian.Bundled,- Distribution.Package.Debian.Setup,- Distribution.Package.Debian.Main,-- Distribution.Package.Debian,-- Test.Changes,-- Test.Dependencies,-- Test.SourcesList,-- Test.Versions-+ Distribution.Package.Debian- - Executable fakechanges- Main-is: utils/FakeChanges.hs
− debian/patches/series
@@ -1,1 +0,0 @@-dont-build-tests.patch
− debian/rules
@@ -1,8 +0,0 @@-#!/usr/bin/make -f--DEB_BUILD_DEPENDENCIES = build-arch--include /usr/share/cdbs/1/rules/debhelper.mk-include /usr/share/cdbs/1/class/hlibrary.mk--
− debian/watch
@@ -1,5 +0,0 @@-version=3-opts="downloadurlmangle=s|archive/([\w\d_-]+)/([\d\.]+)/|archive/$1/$2/$1-$2.tar.gz|,\-filenamemangle=s|(.*)/$|debian-$1.tar.gz|" \- http://hackage.haskell.org/packages/archive/debian \- ([\d\.]*\d)/
utils/AptGetBuildDeps.hs view
@@ -1,42 +1,41 @@ module Main where -import Control.Monad-import Data.ByteString.Char8 (ByteString) import Debian.Control -- (Control(..),lookupP,parseControlFromFile) import Debian.Relation import System.Process import System.Exit import System.Environment -lookupBuildDeps :: FilePath -> IO [PkgName]+lookupBuildDeps :: FilePath -> IO [BinPkgName] lookupBuildDeps fp = do control <- parseControlFromFile fp- case control of + case control of (Left e) -> error (show e)+ (Right (Control [])) -> error "Empty control file" (Right (Control (p:_))) -> return $ ((lookupDepends "Build-Depends" p) ++ (lookupDepends "Build-Depends-Indep" p)) -lookupDepends :: String -> Paragraph' String -> [PkgName]-lookupDepends key paragraph = +lookupDepends :: String -> Paragraph' String -> [BinPkgName]+lookupDepends key paragraph = case fieldValue key paragraph of Nothing -> [] -- (Left $ "could not find key " ++ key)- (Just relationString) -> + (Just relationString) -> case parseRelations relationString of (Left e) -> error (show e) (Right andRelations) -> map pkgName (concatMap (take 1) andRelations) where- pkgName :: Relation -> PkgName+ pkgName :: Relation -> BinPkgName pkgName (Rel name _ _) = name -aptGetInstall :: [String] -> [PkgName] -> IO ExitCode+aptGetInstall :: [String] -> [BinPkgName] -> IO ExitCode aptGetInstall options pkgnames = do (_,_,_,ph)- <- createProcess $ proc "apt-get" $ ["install"] ++ options ++ pkgnames+ <- createProcess $ proc "apt-get" $ ["install"] ++ options ++ map (unPkgName . unBinPkgName) pkgnames waitForProcess ph- + main :: IO () main = do