debian-3.17.1: Modules for working with the Debian package systemSource codeContentsIndex
Debian.GenBuildDeps
Contents
Preparing dependency info
Using dependency info
Description
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.
Synopsis
type DepInfo = (SrcPkgName, Relations, [BinPkgName])
newtype SrcPkgName = SrcPkgName PkgName
newtype BinPkgName = BinPkgName PkgName
buildDependencies :: Control -> Either String DepInfo
newtype RelaxInfo = RelaxInfo [(BinPkgName, Maybe SrcPkgName)]
relaxDeps :: RelaxInfo -> [DepInfo] -> [DepInfo]
buildable :: Show a => (a -> a -> Ordering) -> [a] -> Either [(a, a)] (a, [a], [a])
compareSource :: DepInfo -> DepInfo -> Ordering
Documentation
type DepInfo = (SrcPkgName, Relations, [BinPkgName])Source
This type describes the build dependencies of a source package.
newtype SrcPkgName Source
Constructors
SrcPkgName PkgName
show/hide Instances
newtype BinPkgName Source
Constructors
BinPkgName PkgName
show/hide Instances
Preparing dependency info
buildDependencies :: Control -> Either String DepInfoSource
Return the dependency info for a source package with the given dependency relaxation. |According to debian policy, only the first paragraph in debian/control can be a source package http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles
newtype RelaxInfo Source
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.
Constructors
RelaxInfo [(BinPkgName, Maybe SrcPkgName)]
relaxDeps :: RelaxInfo -> [DepInfo] -> [DepInfo]Source
Remove any dependencies that are designated "relaxed" by relaxInfo.
Using dependency info
buildable :: Show a => (a -> a -> Ordering) -> [a] -> Either [(a, a)] (a, [a], [a])Source
Given an ordering function representing the dependencies on a list of packages, return a triple: One ready package, the packages that depend on the ready package directly or indirectly, and all the other packages.
compareSource :: DepInfo -> DepInfo -> OrderingSource
This is a nice start. It ignores circular build depends and takes a pretty simplistic approach to or build depends. However, I think this should work pretty nicely in practice.
Produced by Haddock version 2.4.2