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