Safe Haskell | None |
---|---|
Language | Haskell98 |
Functions for dealing with source and binary packages in an abstract-way
- type PackageNameMap a = Map BinPkgName [a]
- packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a
- addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p
- findProvides :: forall p. (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)]
- lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a]
Documentation
type PackageNameMap a = Map BinPkgName [a] Source
packageNameMap :: (a -> BinPkgName) -> [a] -> PackageNameMap a Source
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
addProvides :: (p -> [BinPkgName]) -> [p] -> PackageNameMap p -> PackageNameMap p Source
addProvides
finds packages that Provide other packages and adds
them to the PackageNameMap. They will be adde to the end of the
list, so that real packages have 'higher priority' than virtual
packages.
NOTE: Does not check for duplication or multiple use
findProvides :: forall p. (p -> [BinPkgName]) -> [p] -> [(BinPkgName, p)] Source
lookupPackageByRel :: PackageNameMap a -> (a -> (BinPkgName, DebianVersion)) -> Relation -> [a] Source
lookupPackageByRel
returns all the packages that satisfy the specified relation
TODO: Add architecture check